docker略览

avatar
作者
筋斗云
阅读量:0

1.Docker 下载安装

# 清空原有 Docker 残留 sudo yum remove docker \                   docker-client \                   docker-client-latest \                   docker-common \                   docker-latest \                   docker-latest-logrotate \                   docker-logrotate \                   docker-selinux \                   docker-engine-selinux \                   docker-engine \                   docker-ce # 设置 Docker yum 源 sudo yum install -y yum-utils \            device-mapper-persistent-data \            lvm2 --skip-broken sudo yum-config-manager \     --add-repo \     https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 使用 sed 工具将 docker-ce.repo 中的 download.docker.com 替换为 mirrors.aliyun.com/docker-ce sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo # 生成软件包缓存以加快后续的软件包管理操作。 sudo yum makecache fast # 安装 Docker sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 关闭防火墙 sudo systemctl disable firewalld --now # 启动 Docker sudo systemctl enable docker --now # 配置 Docker 镜像源加速下载 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' {   "registry-mirrors": ["https://as08lme3.mirror.aliyuncs.com","https://mirror.ccs.tencentyun.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker 

2.Docker 简单命令

# 查看所有镜像 docker images # 搜索镜像 docker search [OPTIONS] TERM # 拉取镜像 docker pull [OPTIONS] NAME[:TAG|@DIGEST] # 删除镜像 docker rmi [OPTIONS] IMAGE [IMAGE...] # 查看运行中的容器 docker ps # 查看所有容器 docker ps -a # 创建容器 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] # 停止容器 docker stop [OPTIONS] CONTAINER [CONTAINER...] # 启动容器 docker start [OPTIONS] CONTAINER [CONTAINER...] # 重启容器 docker restart [OPTIONS] CONTAINER [CONTAINER...] # 查看容器资源使用情况 docker stats [OPTIONS] [CONTAINER...] # 查看容器日志 docker logs [OPTIONS] CONTAINER # 删除容器 docker rm [OPTIONS] CONTAINER [CONTAINER...] # 进入容器内部 docker exec [OPTIONS] CONTAINER COMMAND [ARG...] # 提交容器打成一个新镜像 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] # 保存镜像为一个指定文件 docker save [OPTIONS] IMAGE [IMAGE...] # 加载镜像 docker load [OPTIONS] # 更改镜像名 docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] # 登录 docker hub docker login [OPTIONS] [SERVER] # 推送镜像 docker push [OPTIONS] NAME[:TAG] 

3.存储

Docker 支持两种存储方式,这都是在创建容器时,所用参数设置

  • 目录挂载:-v 目录名:目录名
  • 卷挂载:-v 卷名:目录名

4.网络

Docker 提供了一种虚拟网络环境,使得容器之间可以相互通信和访问。在 Docker 中,你可以创建自定义网络,或者使用默认的网络。

Docker 网络类型

  • 桥接网络(Bridge Network):这是 Docker 默认使用的网络类型。它会为每个容器分配一个 IP 地址,并创建一个虚拟交换机来连接容器。
  • 主机网络(Host Network):容器与主机共享网络栈,可以直接使用主机的网络接口进行通信。
  • Overlay 网络:用于连接多个 Docker 主机的网络,可实现分布式应用程序的跨主机通信。

相关命令

# 创建自定义网络 docker network create # 连接容器到网络 # 创建容器时,使用 --network 参数来指定容器连接到的网络 # 查看网络列表 docker network ls # 查看网络详情 docker network inspect # 删除网络 docker network rm 

补充:

  1. 在创建容器时,docker 会默认为每个容器分配一个唯一 ip,使用 容器 ip + 容器端口可以实现容器间的通信。
  2. 由于各种原因,分配的 ip 可能会发生变化,所以应当尽可能为其分配域名。由于默认的 docker 0 默认不支持主机域名,所以可以创建自定义网络,从而实现分配域名,达到稳定的通信。一般而言, 创建的自定义网络中,容器名就是稳定域名。

5.Docker Compose

Docker Compose 是一个用于定义和运行多个 Docker 容器的工具。它使用一个 YAML 文件来配置应用程序的服务、网络和卷等,并使用一条命令启动、停止和管理整个应用程序的容器。

使用 Docker Compose 可以将多个 Docker 容器组合成一个应用程序,并定义它们之间的关系和依赖。它提供了一种简洁的方式来管理多个容器,使得应用程序的部署和运行变得更加容易和可复制。

Docker Compose 核心就是编写 docker-compose.yaml 文件。

docker-compose.yaml 中顶级元素,有 name、services、network、volumes、configs、secrets等

具体编写规则:https://docs.docker.com/compose/compose-file/

相关命令:

# 上线 docker compose up -d # 下线 docker compose down # 启动 docker compose start x1 x2 x3 # 停止 docker compose stop x1 x3 

6.Dockerfile

Docker 可以通过读取 Dockerfile 中的指令来自动构建镜像。Dockerfile 是一个文本文档,其中包含用户可以在命令行上调用来组装镜像的所有命令。

使用 Dockerfile,你可以定义所需的基础镜像、安装软件包、复制文件、设置环境变量、运行命令等一系列操作,最终生成一个包含应用程序和其依赖的可运行镜像。

常见指令作用
FROM指定镜像基础环境
RUN运行自定义命令
CMD容器启动命令或参数
LABEL自定义标签
EXPOSE指定暴露端口
ENV环境变量
ADD添加文件到镜像
COPY复制文件到镜像
ENTRYPOINT容器固定启动命令
VOLUME数据卷
USER指定用户和用户组
WORKDIR指定默认工作目录
ARG指定构建参数

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!