Lokve

一破敲代码的网工

文章

17

标签

20

评论

10

文章目录

数据统计

成立

600天

文章

17篇

评论

10条

标签

20个

最近文章

Linux Docker多容器管理部署

介绍

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

核心概念

Image(镜像)
镜像基于分层文件系统构建(Layered Filesystem),由多个只读层叠加组成,用于描述应用的运行时环境。

Container(容器)
容器是镜像的可运行实例,是一种轻量化、可移植、隔离的进程运行环境。

Registry(镜像仓库)
用于分发镜像,如 Docker Hub、阿里云 ACR、Harbor 等。

Volume(持久化卷)
用于持久存储容器外部化数据,避免容器删除导致数据丢失。

Ubuntu安装

sudo apt update
sudo apt install -y ca-certificates curl gnupg

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
    | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

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

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

sudo systemctl enable --now docker

Centos安装

sudo yum install -y yum-utils

sudo yum-config-manager \
    --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

sudo systemctl enable --now docker

验证安装:

docker version
docker info

国内镜像加速

为避免访问 Docker Hub 受限,可在 daemon.json 中加入加速器:

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

加速配置:

sudo systemctl daemon-reload
sudo systemctl restart docker

常用命令

镜像管理

docker pull nginx                     # 拉取镜像
docker images                         # 列出镜像
docker rmi nginx                      # 删除镜像
docker build -t myapp:latest .        # 构建镜像

容器生命周期管理

docker run -d -p 80:80 nginx          # 以守护模式运行容器
docker ps                              # 查看运行中的容器
docker stop <container>                # 停止容器
docker rm <container>                  # 删除容器
docker exec -it <container> bash       # 进入容器 Shell
docker logs -f <container>             # 实时日志
docker restart <container>             # 重启容器

数据卷与持久化

docker volume create data-volume
docker volume ls
docker volume inspect data-volume
docker volume rm data-volume

网络管理

docker network ls
docker network create my-net
docker network inspect my-net
docker network rm my-net

Docker Compose

Docker Compose 是基于 YAML 的容器编排工具,通过单个 docker-compose.yml 进行服务定义、网络拓扑、依赖关系管理、持久化配置等。
其主要优势:

  • 声明式 Infrastructure-as-Code
  • 服务依赖自动处理(depends_on)
  • 网络自动创建(Overlay 网络可用于 Swarm)
  • 多服务可一键启动、更新、停止
  • 非生产环境下比 Kubernetes 更轻量

Compose安装验证

docker compose version

如已显示版本号,则 Compose V2 已启用(现代 Docker 默认包含)。

Compose 多服务应用案例

Nginx + PHP-FPM + MySQL
目录结构:

/srv/demo/
 ├─ docker-compose.yml
 ├─ web/
 └─ nginx.conf

docker-compose.yml 内容:

version: '3.8'

services:
  nginx:
    image: nginx:latest
    container_name: demo-nginx
    ports:
      - "8080:80"
    volumes:
      - ./web:/usr/share/nginx/html
      - ./nginx.conf:/etc/nginx/nginx.conf
    depends_on:
      - php
    networks:
      - demo-net

  php:
    image: php:8.2-fpm
    container_name: demo-php
    volumes:
      - ./web:/var/www/html
    networks:
      - demo-net

  mysql:
    image: mysql:8.0
    container_name: demo-mysql
    environment:
      MYSQL_ROOT_PASSWORD: root123
      MYSQL_DATABASE: demo
    volumes:
      - db-data:/var/lib/mysql
    ports:
      - "3306:3306"
    networks:
      - demo-net

volumes:
  db-data:

networks:
  demo-net:

Compose常用命令

docker compose up -d            # 后台启动所有服务
docker compose down             # 停止并清理容器
docker compose logs -f          # 查看所有服务日志
docker compose ps               # 查看状态
docker compose restart nginx    # 重启某服务
docker compose up --build -d    # 重新构建镜像并启动

案例:Docker部署nginx

docker run -d \
  --name my-nginx \
  -p 8080:80 \
  -v /home/nginx/html:/usr/share/nginx/html \
  -v /home/nginx/conf:/etc/nginx \
  nginx

浏览器访问:

http://服务器IP:8080

修改 /home/nginx/html/index.html 即可实时生效。

Linux Docker多容器管理部署

发布于

November 26, 2025

分类

Linux运维

版权协议

MIT

#Linux
评论
😀
仅有一条评论
    surfyn.fr 2026-05-05 回复

    Globalement, je fais écho à ta logique, bien que j'ajouterais
    certains bémols sur certains points.

感谢支持!

微信二维码

请使用微信扫描二维码打赏。

支付宝二维码

请使用支付宝扫描二维码打赏。

渝公网安备50010502504517号