学点Data站:https://yellowcan.cn
学点笔录:https://code.yellowcan.cn

一、卸载旧版本(如有)

sudo apt remove -y docker docker-engine docker.io containerd runc
sudo apt autoremove -y

二、更新系统并安装依赖

sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg lsb-release

三、添加 Docker 官方 GPG 密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

四、添加 Docker 软件源

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

五、安装 Docker Engine

sudo apt update
# 安装最新稳定版 docker-ce
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

六、免 sudo 执行 docker(推荐,不用每次输 sudo)

sudo usermod -aG docker $USER

生效必须重新登录服务器 / 重启终端

docker ps

七、设置 Docker 开机自启

# 查看状态
systemctl status docker
# 设置开机启动
sudo systemctl enable docker
# 重启docker
sudo systemctl restart docker

八、常用国内镜像加速(解决拉取镜像慢)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://hub-mirror.c.163.com",
    "https://mirror.ccs.tencentyun.com"
  ]
}
EOF

重启生效

sudo systemctl restart docker
# 查看镜像源是否生效
docker info

九、验证 Docker 是否安装成功

docker run hello-world

验证是否拉取成功

docker images

在这里插入图片描述

查看镜像已存在,docker安装成功

十、docker compose 使用

# 前台启动
docker compose up
# 后台运行
docker compose up -d
# 停止
docker compose down

常用操作命令汇总

# 查看docker版本
docker -v
# 查看镜像
docker images
# 查看运行容器
docker ps
# 停止容器
docker stop 容器ID/容器名
# 删除容器
docker rm 容器ID
# 删除镜像
docker rmi 镜像ID

Docker 一键安装运行 Nginx

直接启动(最简单,临时测试用)

docker run -d -p 80:80 --name nginx nginx

参数说明:

  • -d:后台运行
  • -p 80:80:宿主机 80 端口映射容器 80
  • --name nginx:容器命名
  • nginx:拉取最新 nginx 镜像

生产推荐:挂载本地目录(持久化,修改配置不用进容器)

  1. 先创建本地存放目录
mkdir -p /data/nginx/{conf,html,logs}
  1. 先复制容器默认配置到本地(否则空目录挂载会报错)
docker run --rm nginx:latest cat /etc/nginx/conf.d/default.conf > /data/nginx/conf/default.conf
docker run --rm nginx:latest cat /usr/share/nginx/html/index.html > /data/nginx/html/index.html
  1. 完整挂载启动命令
docker run -d \
  -p 80:80 \
  -p 443:443 \
  --name nginx \
  --restart always \
  -v /data/nginx/conf:/etc/nginx/conf.d \
  -v /data/nginx/html:/usr/share/nginx/html \
  -v /data/nginx/logs:/var/log/nginx \
  nginx
- `--restart always`:开机 / 宕机自动重启
- `-v` 挂载本地目录,修改本地文件实时生效

常用操作命令

# 查看运行容器
docker ps

# 停止nginx
docker stop nginx

# 重启nginx(改配置后执行)
docker restart nginx

# 进入nginx容器内部
docker exec -it nginx bash

# 实时查看访问日志
tail -f /data/nginx/logs/access.log

# 删除容器(数据不会删,本地/data/nginx还在)
docker rm -f nginx

# 删除nginx镜像
docker rmi nginx

修改 Nginx 配置流程

  1. 编辑本地配置
vim /data/nginx/conf/default.conf
  1. 校验配置语法(关键,避免重启失败)
docker exec nginx nginx -t
  1. 重载配置(不中断服务)
docker exec nginx nginx -s reload

在这里插入图片描述

更多推荐