Lokve

一破敲代码的网工

文章

16

标签

18

评论

4

文章目录

数据统计

成立

372天

文章

16篇

评论

4条

标签

18个

最近文章

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
评论
😀
仅有一条评论
    vylxkgufkn 2025-12-31 回复

    qngypisdgsiturvdqmtyzwmyujjoyu

感谢支持!

微信二维码

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

支付宝二维码

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

渝公网安备50010502504517号