docker略览

1.Docker 下载安装

sh 复制代码
# 清空原有 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 简单命令

sh 复制代码
# 查看所有镜像
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 主机的网络,可实现分布式应用程序的跨主机通信。

相关命令

sh 复制代码
# 创建自定义网络
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/

相关命令:

sh 复制代码
# 上线
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 指定构建参数
相关推荐
南猿北者18 分钟前
docker容器
docker·容器
苹果醋326 分钟前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
二十雨辰40 分钟前
[linux]docker基础
linux·运维·docker
time never ceases1 小时前
使用docker方式进行Oracle数据库的物理迁移(helowin/oracle_11g)
数据库·docker·oracle
Jason-河山1 小时前
【自动化更新,让商品信息跳舞】——利用API返回值的幽默编程之旅
运维·自动化
lihuhelihu1 小时前
第3章 CentOS系统管理
linux·运维·服务器·计算机网络·ubuntu·centos·云计算
哲讯智能科技1 小时前
SAP Business One市场价格解析
运维·sap·erp
YCyjs2 小时前
K8S群集调度二
云原生·容器·kubernetes
Hoxy.R2 小时前
K8s小白入门
云原生·容器·kubernetes
山东布谷科技官方2 小时前
布谷直播源码部署服务器关于数据库配置的详细说明
运维·服务器·数据库·直播系统源码·直播源码·直播系统搭建·直播软件开发