云服务器 Docker 完整安装 + 容器快速部署教程
云服务器 Docker 完整安装 + 容器快速部署教程
适配:阿里云/腾讯云/华为云,系统 CentOS7/8/9、Ubuntu20.04~24.04,一键脚本+国内镜像加速 + Compose多服务部署,生产可用
前置准备
- 拿到云服务器公网IP、SSH账号密码(root或带sudo权限用户)云服务器选择入口:https://act.tag.org.cn
- 云服务器安全组放行端口:比如80、443、3306等,不然外部访问不了容器
- 远程工具:Xshell、FinalShell、Termius 或者网页控制台

一、一键安装Docker(推荐,自动识别系统,自带Compose插件)
国内加速版安装脚本
curl -fsSL [https://get.docker.com](https://get.docker.com) -o get-docker.sh
sudo sh get-docker.sh
安装完成后,启动并设置开机自启
启动docker
systemctl start docker
开机自启
systemctl enable docker
验证版本
docker --version
docker compose version
✅ 出现版本号即安装成功(新版docker内置docker compose,不再单独装docker-compose)
可选:把当前用户加入docker组,以后不用每次敲sudo
sudo usermod -aG docker $USER
退出ssh重连生效
二、配置国内镜像加速(必做,解决pull镜像慢、超时)
编辑daemon配置
vim /etc/docker/daemon.json
直接粘贴下面内容(阿里云/清华镜像源)
{
"registry-mirrors": [
"[https://docker.mirrors.ustc.edu.cn](https://docker.mirrors.ustc.edu.cn)",
"[https://hub-mirror.c.163.com](https://hub-mirror.c.163.com)",
"[https://mirror.baidubce.com](https://mirror.baidubce.com)"
],
"log-driver":"json-file",
"log-opts":{"max-size":"10m"}
}
保存退出,重载配置并重启docker
systemctl daemon-reload
systemctl restart docker
查看配置是否生效
docker info
三、基础docker run单容器部署(快速跑服务)
语法:docker run [参数] 镜像名
常用参数:
-d后台运行(守护)-p 宿主机端口:容器端口端口映射(宿主机端口=对外访问端口)--name给容器起名-v 宿主机目录:容器内目录数据持久化挂载(重要!删除容器数据不丢)-e KEY=VALUE环境变量--restart=always容器随docker开机自动启动
示例1:部署 Nginx(网页服务)
拉取镜像并启动
docker run -d \
--name nginx \
-p 80:80 \
--restart=always \
-v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/conf:/etc/nginx/conf.d \
nginx:alpine
访问:http://你的公网IP
示例2:部署 MySQL8.0
docker run -d \
--name mysql8 \
-p 3306:3306 \
--restart=always \
-e MYSQL_ROOT_PASSWORD="Root@123456" \
-v /data/mysql:/var/lib/mysql \
mysql:8.0
常用基础命令
docker ps 查看正在运行容器
docker ps -a 查看所有(含停止)
docker logs 容器名/ID 查看日志,加-f实时跟踪
docker exec -it 容器名 bash 进入容器内部
docker stop 容器名 停止
docker rm 容器名 删除容器
docker pull 镜像名:tag 拉镜像
docker images 本地镜像列表
docker rmi 镜像ID 删除镜像
四、Docker Compose 多服务编排(生产首选,一键启停整套服务)
适合同时部署 Nginx + MySQL + Redis + 后端项目,只需要一个yml文件管理
- 新建项目目录,编写
docker-compose.yml
mkdir /data/demo && cd /data/demo
vim docker-compose.yml
示例(Nginx+MySQL+Redis),直接复制修改密码即可:
version: '3.8'
services:
nginx:
image: nginx:alpine
container_name: nginx
restart: always
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
- ./conf:/etc/nginx/conf.d
depends_on:
- mysql
- redis
mysql:
image: mysql:8.0
container_name: mysql
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: "Root@123456"
volumes:
- ./mysql-data:/var/lib/mysql
redis:
image: redis:alpine
container_name: redis
restart: always
ports:
- "6379:6379"
volumes:
- ./redis-data:/data
- Compose启停命令(在yml所在目录执行)
后台启动整套服务
docker compose up -d
查看状态
docker compose ps
查看日志
docker compose logs -f
停止(保留容器数据)
docker compose stop
停止并删除容器(卷数据默认保留,加 -v 删除数据卷)
docker compose down
修改yml后重新加载
docker compose up -d
Compose内部服务可以直接用服务名互相访问,比如程序连接mysql,host填
mysql,不需要填服务器IP
五、可视化面板 Portainer(新手友好,网页管理容器)
docker run -d \
--name portainer \
--restart=always \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer-ce
安全组放行9000端口,访问 http://IP:9000,首次设置管理员账号密码,选择Local本地docker管理。
六、常见坑&注意事项
- 安全组!安全组! 端口没放行,浏览器打不开
- 挂载目录建议全部用绝对路径,权限问题:
chmod 755 目录 - MySQL、Redis不要直接裸端口暴露公网,建议加防火墙限制IP
--restart=always适合正式服务,测试容器不要加- 云服务器内核过低、openvz架构不支持docker(现在主流KVM都没问题)
- 国内网络优先使用镜像加速,否则拉取镜像极慢
七、卸载Docker(需要重装时)
sudo sh get-docker.sh --uninstall
或者手动
apt remove docker-ce docker-ce-cli containerd.io
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker /etc/docker

云服务器 Docker 完整安装 + 容器快速部署教程
> 适配:阿里云/腾讯云/华为云,系统 CentOS7/8/9、Ubuntu20.04~24.04,一键脚本+国内镜像加速 + Compose多服务部署,生产可用
浙公网安备 33010602011771号