Yang's blog Yang's blog
首页
Java
密码学
机器学习
命令手册
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

xiaoyang

编程爱好者
首页
Java
密码学
机器学习
命令手册
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • System

    • HomeBrew介绍
  • Git

    • Git 命令入门指南
  • shell

    • shell编程中常用的符号
  • docker

    • Docker介绍
      • 1. 为什么需要Docker?
      • 2. Docker vs 虚拟机
        • 虚拟机的局限
        • Docker容器的优势
      • 3. 核心概念
        • 镜像(Image)
        • 容器(Container)
      • 4. Docker安装
      • 5. 常用命令速查
        • 镜像操作
        • 容器操作
    • Dockerfile :构建自己的 Docker 镜像
    • Docker Compose :容器编排工具
  • Linux

    • Linux基础知识
    • Linux 文件系统
    • Linux 用户管理
    • Linux 权限与安全
    • Linux 网络管理
    • Linux 进程管理
    • Linux 常用命令
  • 命令手册
  • docker
xiaoyang
2025-02-08
目录

Docker介绍推荐

# Docker介绍

image-20250208115836104

# 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) 安装 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

(4) 验证 Docker

docker --version
docker ps
1
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

# 容器操作

# 运行容器
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
编辑 (opens new window)
#docker
上次更新: 2025/04/01, 01:48:12

← shell编程中常用的符号 Dockerfile :构建自己的 Docker 镜像→

最近更新
01
操作系统
03-18
02
Nginx
03-17
03
后端服务端主动推送消息的常见方式
03-11
更多文章>
Theme by Vdoing | Copyright © 2023-2025 xiaoyang | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式