Docker 常见用法
安装 Docker
在不同的操作系统上安装 Docker 的方法会有所不同。在大多数 Linux 发行版中,Docker 可以通过包管理器安装。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 
 | # Ubuntu/Debian  sudo apt-get update
 sudo apt-get install docker-ce docker-ce-cli containerd.io
 
 # CentOS
 sudo yum install docker-ce docker-ce-cli containerd.io
 
 # 设置 Docker 开机自启动
 sudo systemctl enable docker
 
 # 启动 Docker 服务
 sudo systemctl start docker
 
 | 
运行容器
| 12
 3
 4
 5
 6
 7
 8
 
 | # 从 Docker Hub 拉取一个镜像并运行一个容器  docker run hello-world
 
 # 运行一个交互式的容器(例如,Ubuntu)
 docker run -it ubuntu /bin/bash
 
 # 在后台运行一个容器,并设置重启策略
 docker run -d --restart=always nginx
 
 | 
容器管理
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 
 | # 列出所有正在运行的容器  docker ps
 
 # 列出所有容器,包括停止的
 docker ps -a
 
 # 停止一个运行中的容器
 docker stop container_name_or_id
 
 # 启动一个已经停止的容器
 docker start container_name_or_id
 
 # 重启一个容器
 docker restart container_name_or_id
 
 # 删除一个停止的容器
 docker rm container_name_or_id
 
 # 强制删除一个运行中的容器
 docker rm -f container_name_or_id
 
 | 
镜像管理
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | # 列出所有本地镜像  docker images
 
 # 拉取一个镜像
 docker pull image_name
 
 # 删除一个镜像
 docker rmi image_name
 
 # 为镜像创建一个新的标签(相当于重命名或复制)
 docker tag original_image:tag new_image:tag
 
 | 
与容器交互
| 12
 3
 4
 5
 6
 7
 8
 
 | # 进入正在运行的容器  docker exec -it container_name_or_id /bin/bash
 
 # 拷贝文件从容器到主机
 docker cp container_name_or_id:/path/in/container /path/on/host
 
 # 拷贝文件从主机到容器
 docker cp /path/on/host container_name_or_id:/path/in/container
 
 | 
网络管理
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 
 | # 列出网络  docker network ls
 
 # 创建一个网络
 docker network create my_network
 
 # 将容器连接到网络
 docker network connect my_network container_name_or_id
 
 # 断开容器与网络的连接
 docker network disconnect my_network container_name_or_id
 
 # 删除网络
 docker network rm my_network
 
 | 
数据卷和持久化存储
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | # 创建一个数据卷  docker volume create my_volume
 
 # 使用数据卷运行容器
 docker run -d -v my_volume:/path/in/container nginx
 
 # 列出所有数据卷
 docker volume ls
 
 # 删除数据卷
 docker volume rm my_volume
 
 | 
构建镜像
使用 Dockerfile 定义应用环境,然后使用 docker build 命令来创建镜像。
| 12
 3
 4
 5
 
 | # 在 Dockerfile 所在的目录下构建镜像,并给它打上标签  docker build -t my_image:tag .
 
 # 使用指定的 Dockerfile 构建镜像
 docker build -f /path/to/a/Dockerfile -t my_image:tag .
 
 | 
Dockerfile 示例
Dockerfile 是一个文本文件,用于自动化 Docker 镜像的构建过程。它包含了一系列的指令和参数,用于定义镜像的内容和特性。以下是一个简单的 Dockerfile 示例,用于创建一个运行简单 Python 应用的 Docker 镜像。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 
 | FROM python:3.8-slim
 
 
 WORKDIR /app
 
 
 COPY . /app
 
 
 RUN pip install --no-cache-dir -r requirements.txt
 
 
 EXPOSE 80
 
 
 ENV NAME World
 
 
 CMD ["python", "app.py"]
 
 | 
构建并运行使用这个 Dockerfile 的镜像:
| 12
 3
 4
 5
 
 | # 构建镜像  docker build -t my_python_app .
 
 # 运行容器
 docker run -p 4000:80 my_python_app
 
 | 
推送镜像到 Docker Hub
| 12
 3
 4
 5
 
 | # 登录到 Docker Hub  docker login
 
 # 推送镜像到你的 Docker Hub 仓库
 docker push my_username/my_image:tag
 
 | 
Docker Compose
Docker Compose 是一个工具,用于定义和运行多容器 Docker 应用。通过一个 YAML 文件来配置应用服务,可以使用一个单独的命令来启动和停止所有服务。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | 
 version: '3'
 services:
 web:
 build: .
 ports:
 - "5000:5000"
 redis:
 image: "redis:alpine"
 
 | 
使用 Docker Compose 命令:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | # 启动所有服务  docker-compose up
 
 # 在后台启动所有服务
 docker-compose up -d
 
 # 停止所有服务
 docker-compose down
 
 # 构建或重新构建服务
 docker-compose build
 
 |