腾讯云Ubuntu Server 24.04 LTS系统安装Docker

一、彻底卸载旧版本(如之前尝试过安装)

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

二、配置国内镜像源

  1. 腾讯云专属镜像加速
    腾讯云提供专属镜像加速地址,需修改daemon.json文件:
sudo vi /etc/docker/daemon.json

添加以下内容(优先使用腾讯云镜像源):

{
  "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}

保存后重启服务:

sudo systemctl daemon-reload
sudo systemctl restart docker
  1. 其他可用镜像源(备选)
    若需更多加速源,可添加以下镜像地址(注意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

六、常见问题处理

  1. 权限拒绝错误(Got permission denied)
# 确保用户已加入docker组后执行:
sudo chmod 666 /var/run/docker.sock
# 或永久解决方案:
sudo chgrp docker /var/run/docker.sock
  1. 镜像拉取缓慢
# 编辑镜像加速配置(可添加更多镜像源)
sudo nano /etc/docker/daemon.json
# 修改后重启服务
sudo systemctl restart docker
  1. 磁盘空间不足警告
# 清理无用镜像
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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容