Docker介绍推荐
# Docker介绍
# 1. 为什么需要Docker?
环境配置一直是软件开发的痛点:
- 开发和生产环境不一致
- 依赖管理复杂
- 运行环境迁移困难
Docker通过容器化技术从根本上解决了这些问题。
# 2. Docker vs 虚拟机
# 虚拟机的局限
- 资源占用大:需要运行完整的操作系统
- 启动慢:需要先启动操作系统
- 冗余步骤多:如用户登录等系统操作无法跳过
# Docker容器的优势
- 共享操作系统内核,启动秒级
- 仅打包必要的应用和依赖
- 资源占用小,性能接近原生
- 可移植性强,一次构建处处运行
# 3. 核心概念
# 镜像(Image)
- 容器的模板文件
- 分层存储,可以基于基础镜像扩展
- 不可变,构建完就不能修改
- 可以通过Dockerfile定制
- 可在镜像仓库分享
# 容器(Container)
- 镜像的运行实例
- 拥有自己的文件系统、网络配置
- 支持启动、停止、删除等生命周期管理
- 互相隔离但可以通信
- 退出后可以重新启动
# 4. Docker安装
(1) 添加 Docker 官方源
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1
2
2
(2) 安装 Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
1
(3) 启动并启用 Docker
sudo systemctl start docker
sudo systemctl enable docker
1
2
2
(4) 验证 Docker
docker --version
docker ps
1
2
2
# 5. 常用命令速查
# 镜像操作
# 拉取镜像
docker pull [image]
# 构建镜像
docker build -t name:tag .
# 推送镜像
docker push [image]
# 删除镜像
docker rmi [image]
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 容器操作
# 运行容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
# 常用参数说明:
# -d: 后台运行容器并返回容器 ID。
# -it: 交互式运行容器,分配一个伪终端。
# --name: 给容器指定一个名称。
# -p: 端口映射,格式为 host_port:container_port。
# -v: 挂载卷,格式为 host_dir:container_dir。
# --rm: 容器停止后自动删除容器。
# --env 或 -e: 设置环境变量。
# --network: 指定容器的网络模式。
# --restart: 容器的重启策略(如 no、on-failure、always、unless-stopped)。
# -u: 指定用户
# 查看容器
docker ps [-a]
# 启动/停止
docker start/stop/restart [container]
# 进入容器
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
# 常用参数
# -d, --detach: 在后台运行命令。
# --detach-keys: 覆盖分离容器的键序列。
# -e, --env: 设置环境变量。
# --env-file: 从文件中读取环境变量。
# -i, --interactive: 保持标准输入打开。
# --privileged: 给这个命令额外的权限。
# --user, -u: 以指定用户的身份运行命令。
# --workdir, -w: 指定命令的工作目录。
# -t, --tty: 分配一个伪终端。
# 查看日志
docker logs [container]
# 删除容器
docker rm [container]
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
28
29
30
31
32
33
34
35
36
37
38
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
28
29
30
31
32
33
34
35
36
37
38
编辑 (opens new window)
上次更新: 2025/04/01, 01:48:12