docker学习笔记

Docker Cli 基础操作

查看所有容器:

1
docker ps -a

停止运行的容器:

1
docker stop <container_id or name>

重新启动容器:

1
docker start <container_id or name>

暂停运行的容器:

1
docker pause <container_id or name>

重新运行暂停的容器:

1
docker unpause <container_id or name>

删除容器:

1
docker rm <container_id or name>

查看下载的镜像:

1
docker images

删除下载的镜像:

1
docker rmi <IMGAE_ID or repository:tag>
  • IMAGE_ID:镜像唯一标识符,可以通过docker images查看
  • repository:镜像的名称和标签,例如nginx:latest

从image中运行容器:

1
2
3
4
5
6
docker run -d '# 当容器在后台运行' \
--name <container_name> '# 指定容器名' \
--hostname <hostname> '# 指定容器的主机名' \
-p 3000:3000 '# 端口映射,将主机端口映射到容器端口' \
-v $(pwd)/config:/config '# 数据卷映射'

进入正在运行的容器:

1
docker exec -it <容器ID或名称> /bin/bash

Docker Compose

概述: 是一个用于定义和运行多容器docker应用的工具。通过一个配置文件(通常是docker-compose.yml),描述多个容器之间的关系、依赖、网络和共享资源,让你可以方便地管理复杂的容器化应用

核心概念:

  • 服务:描述一个单独的容器,例如web服务、数据库服务。每个服务在docker-compose.yml文件中用来定义容器的行为
  • 网络:定义服务之间如何通信,compose会自动创建网络,允许服务之间通过名称相互通信
  • 卷:定义持久化数据存储位置,确保容器重启后数据不会丢失

工作流程:

  1. 定义服务:使用docker-compose.yml文件定义服务配置
  2. 启动应用:运行docker-compose up 启动所有服务
  3. 管理应用:使用命令如docker-compose ps查看状态,docker-compose logs查看日志
  4. 停止应用:运行docker-compose down停止并清理资源

docker-compose.yml文件示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
version: '3.9'  # 指定 Compose 文件版本

services:
web:
image: nginx:latest # 使用官方 nginx 镜像
ports:
- "8080:80" # 将主机的 8080 端口映射到容器的 80 端口
volumes:
- ./web:/usr/share/nginx/html # 挂载本地目录到容器
networks:
- app-network # 连接到名为 app-network 的网络

database:
image: postgres:latest # 使用官方 PostgreSQL 镜像
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
volumes:
- db-data:/var/lib/postgresql/data # 数据持久化
networks:
- app-network # 连接到名为 app-network 的网络

volumes:
db-data: # 定义持久化卷

networks:
app-network: # 定义网络

docker compose常用命令:

启动服务:

1
docker-compose up
  • 使用-d参数可以后台运行

停止服务:

1
docker-compose down
  • 使用-v参数可以同时删除卷

查看服务状态:

1
docker-compose ps

重启服务:

1
docker-compose restart

查看日志:

1
docker-compose log
  • 查看特定服务日志:docker-compose log <service-name>

运行单个服务:

1
docker-compose up <service-name>

docker学习笔记
http://example.com/2025/05/23/docker学习笔记/
作者
凌云行者
发布于
2025年5月23日
许可协议