一、彻底卸载旧版本(如之前尝试过安装)
sudo apt remove docker docker-engine docker.io containerd runc -y
sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc
sudo apt-get autoremove docker-ce-*
sudo rm -rf /etc/systemd/system/docker.service.d /var/lib/docker
sudo rm -rf /var/lib/docker
sudo rm -rf /etc/docker
通过以下命令确认卸载干净:
docker --version # 若无输出则成功
更新系统组件
sudo apt-get update && sudo apt-get upgrade -y
安装依赖包
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common -y
添加Docker官方GPG密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
添加Docker仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
二、配置国内镜像源
- 腾讯云专属镜像加速
腾讯云提供专属镜像加速地址,需修改daemon.json文件:
sudo vi /etc/docker/daemon.json
添加以下内容(优先使用腾讯云镜像源):
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
保存后重启服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
- 其他可用镜像源(备选)
若需更多加速源,可添加以下镜像地址(注意JSON格式):
{
"registry-mirrors": [
"https://dockerpull.org",
"https://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com",
"https://docker.1panel.live"
]
}
注意:每个地址需用双引号包裹,最后一个地址后不加逗号
三、验证镜像源配置
sudo docker info | grep "Registry Mirrors" -A 5
若输出中包含配置的镜像地址,则生效成功
设置用户权限(无需sudo执行docker命令)
sudo groupadd docker # 如果已有docker组可忽略
sudo usermod -aG docker $USER
newgrp docker # 立即生效用户组变更
启动服务并设置开机自启
sudo systemctl enable docker
sudo systemctl restart docker
五、防火墙配置(如需)
# 开放常用端口(示例开放80和443)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
六、常见问题处理
- 权限拒绝错误(Got permission denied)
# 确保用户已加入docker组后执行:
sudo chmod 666 /var/run/docker.sock
# 或永久解决方案:
sudo chgrp docker /var/run/docker.sock
- 镜像拉取缓慢
# 编辑镜像加速配置(可添加更多镜像源)
sudo nano /etc/docker/daemon.json
# 修改后重启服务
sudo systemctl restart docker
- 磁盘空间不足警告
# 清理无用镜像
docker system prune -a
七、补充说明
版本锁定(防止意外升级):
sudo apt-mark hold docker-ce docker-ce-cli
日志查看:
journalctl -u docker.service -f # 实时查看日志
卸载Docker:
sudo apt purge docker-ce docker-ce-cli -y
sudo rm -rf /var/lib/docker
安装并配置nginx
一、目录结构创建
# 创建主配置目录
sudo mkdir -p /home/ubuntu/nginx/{conf,conf/conf.d,logs,html}
sudo chmod -R 777 /home/ubuntu/nginx
验证目录结构
sudo apt update && sudo apt install tree -y
tree /home/ubuntu/nginx
下载nginx
docker run --name tmp_nginx -d nginx:latest
提取配置文件到宿主机
docker cp tmp_nginx:/etc/nginx/nginx.conf /home/ubuntu/nginx/conf/
docker cp tmp_nginx:/etc/nginx/conf.d/default.conf /home/ubuntu/nginx/conf/conf.d/
清理临时容器
docker rm -f tmp_nginx
三、自定义Nginx配置
主配置文件 (其实就是保持默认)(/home/ubuntu/nginx/conf/nginx.conf)
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
}
站点配置 (/home/ubuntu/nginx/conf/conf.d/vue-project.conf)
server {
listen 80;
server_name localhost;
# 静态资源路径映射
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html; # Vue路由支持
index index.html index.htm;
}
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
}
四、部署Vue项目
# 将dist目录内容复制到html目录(假设dist在当前目录)
sudo cp -a /path/to/your/dist/. /home/ubuntu/nginx/html/
# 验证文件存在
ls -l /home/ubuntu/nginx/html/index.html
五、启动Docker容器
docker run -d \
--name vue_nginx \
-p 80:80 \
-v /home/ubuntu/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /home/ubuntu/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
-v /home/ubuntu/nginx/logs:/var/log/nginx \
-v /home/ubuntu/nginx/html:/usr/share/nginx/html \
--restart always \
nginx:latest
参数解析:
-v ...:ro:配置目录以只读方式挂载防止误修改
--restart always:容器崩溃后自动重启
外网访问配置
开放腾讯云安全组规则:
验证防火墙:
sudo iptables -L -n | grep 80
配置热更新:
# 修改宿主机配置后执行
docker exec vue_nginx nginx -s reload
日志监控:
tail -f /home/ubuntu/nginx/logs/access.log
容器调试:
docker exec -it vue_nginx /bin/sh
访问验证
直接访问测试:
curl -I http://106.55.179.127
预期响应:
HTTP/1.1 200 OK
Server: nginx/1.25.3
常见问题处理
问题1:403 Forbidden
sudo chmod -R 755 /home/ubuntu/nginx/html
问题2:Vue路由404
检查Nginx配置是否包含:
try_files $uri $uri/ /index.html;
问题3:端口冲突
# 查看端口占用
sudo lsof -i :80
# 若需更换端口,修改启动命令 -p 8080:80