Docker V24 及 Docker Compose V2 的安装及使用

docker,v24,compose,v2,安装,使用 · 浏览次数 : 0

小编点评

## Docker 镜像加速器配置指南 **1. 准备工作** * 安装 Docker 镜像加速器: ```bash sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json << EOF{ \"registry-mirrors\": [\"https://dist7hw1.mirror.aliyuncs.com\"]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker ``` * 获取阿里云私有镜像仓库的 URL: ```bash cat > /etc/docker/daemon.json << EOF{ \"registry-mirrors\": [ \"https://hub-mirror.c.163.com\", \"https://mirror.baidubce.com\"] }EOF ``` **2. 配置 Docker 镜像加速器** * 创建一个文件 `docker-compose.yml`: ```yaml version: "3.7" services: web: image: nginx:latest ports: - "8080:80" networks: - devopsnetwork networks: devopsnetwork: external: true ``` * 创建一个容器: ```bash docker-compose up -d ``` **3. 使用 Docker Compose** * 可以使用 `docker-compose` 命令来管理容器和网络: ```bash docker-compose up docker-compose down docker-compose restart ``` **4. 其他配置** * 可以根据需要修改 `docker-compose.yml`文件中的配置,例如指定镜像源、端口映射等。 * 使用 `docker-compose` 命令可以启动、停止、重启容器和网络。 * 可以使用 `docker-compose exec` 命令在容器中执行命令。 **5. 参考资料** * 官方文档: * Install Docker Engine on CentOS * Docker Compose V2 安装官方文档 * 示例: * 运行 docker-compose 创建容器网络 * 使用 Docker Compose 下载和部署软件配置

正文

前言

  • Docker 是一款流行的开源容器化平台,使用 Docker 可以有效地隔离应用程序和系统环境,使得应用程序在不同的环境中具有相同的行为
  • Docker Compose 是一个用于定义和管理多个 Docker 容器的工具
  • Docker 官方文档:文档地址
  • Docker Hub: 容器镜像库和社区
  • 作者:易墨
  • 发布时间:2023.10.02

软件包源配置

跟着文档第一句就报错了,需要配置包源下

[root@devops01 ~]# sudo yum install -y yum-utils
CentOS Linux 8 - AppStream                             77  B/s |  38  B     00:00
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
  • 配置包源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
rm /etc/yum.repos.d/CentOS-Linux-AppStream.repo -f
rm /etc/yum.repos.d/CentOS-Linux-BaseOS.repo -f
dnf clean all

Docker 安装

  • 官方文档:Install Docker Engine on CentOS

  • 安装时的版本

    • 查看版本列表:yum list docker-ce --showduplicates | sort -r
    • 当前 docker-ce 版本:3:24.0.0-1.el8
    • 当前 docker-ce-cli:1:24.0.6-1.el8
  • 卸载旧版本,新机器跳过即可

    • sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
      sudo rm -rf /var/lib/docker
      sudo rm -rf /var/lib/containerd
      
  • 安装

    • sudo yum install -y yum-utils device-mapper-persistent-data lvm2
      sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
      sudo yum install -y docker-ce-3:24.0.0-1.el8 docker-ce-cli-1:24.0.6-1.el8 containerd.io docker-buildx-plugin docker-compose-plugin
      
  • 启动

    • docker未启动将会报错:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
    • sudo systemctl start docker
      
  • 安装完毕

Docker 镜像加速器配置

docker镜像默认是从hub.docker.com拉取镜像,国内访问太慢了,可以配置国内的镜像源

  1. 阿里云私有加速器 登录后获取 配置镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://dist7hw1.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  1. 百度及网易公共加速器

    1. cat > /etc/docker/daemon.json << EOF
      {
        "registry-mirrors": [
          "https://hub-mirror.c.163.com",
          "https://mirror.baidubce.com"
        ] 
      }
      EOF
      
  2. 其他可以通过 docker-registry-cn-mirror-test 项目查看是否可以使用

Docker 常用命令一览

  1. 镜像相关命令:

    1. docker images:列出本地的镜像列表。
    2. docker pull <image_name>:从 Docker Hub 下载指定名称的镜像。
    3. docker push <image_name>:将本地的镜像推送到 Docker Hub 或私有镜像仓库中。
    4. docker rmi <image_name>:删除指定的镜像。
  2. 容器相关命令:

    1. docker ps:列出运行中的容器列表。
    2. docker ps -a:列出所有的容器列表,包括已停止的容器。
    3. docker run <image_name>:创建并启动一个新的容器。
    4. docker start <container_id>:启动已停止的容器。
    5. docker stop <container_id>:停止运行中的容器。
    6. docker restart <container_id>:重启容器。
    7. docker rm <container_id>:删除指定的容器。
    8. docker exec -it <container_id> <command>:在运行中的容器中执行命令。
    9. docker logs <container_id>:查看容器的日志输出。
  3. 网络相关命令:

    1. docker network ls:列出 Docker 网络列表。
    2. docker network create <network_name>:创建一个新的网络。
    3. docker network connect <network_name> <container_id>:将容器连接到指定的网络。
    4. docker network disconnect <network_name> <container_id>:断开容器与指定网络的连接。
  4. 其他常用命令:

    1. docker version:查看 Docker 版本信息。
    2. docker info:查看 Docker 系统信息。
    3. docker search <term>:在 Docker Hub 上搜索镜像。
    4. docker pull <image_name>:<tag>:下载指定标签的镜像。
    5. docker tag <source_image_name> <target_image_name>:给镜像打标签。
    6. docker login:登录到 Docker Hub 或私有镜像仓库。
    7. docker logout:退出当前登录的 Docker Hub 或私有镜像仓库。

Docker Compose V2 安装

  • 官方文档:Install using the repository

  • 当前版本:v2.21.0

    • 使用的语法变了,用 docker compose 来运行命令,去掉了 - ,详情可以看迁移指南

  • 安装

    • sudo yum update
      sudo yum install docker-compose-plugin -y
      
  • 使用

    • docker compose xxxx同之前的docker-compose
    • docker-compose scale 需要修改docker compose up --scale
    • docker-compose config 命令用于验证和查看 Docker Compose 文件的配置
  • 使用示例:官方示例

  • 旧版本1.x 的安装,安装后使用 docker-compose

    • # 下载docker-compose,服务器下不下来可以本地下然后传到服务器
      sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
      # 添加可执行权限
      sudo chmod +x /usr/local/bin/docker-compose
      # 输出版本
      docker-compose --version
      # 输出:docker-compose version 1.27.4, build xxx
      

使用实践

  • 创建容器网络:docker network create devopsnetwork

一般来讲一个项目的服务都应该在一个网络中,所以在创建容器前都需要先创建容器网络

  • 指定容器网络:

    • 运行 docker 时 docker run --network=devopsnetwork xxxximages
    • 创建 compose.yml 中指定网络, 运行:docker compose up
    • 查看容器网络信息:docker inspect e54c | grep Networks -A 20
    • services:
        web:
          image: nginx
          ports:
            - "8080:80"
          networks:
            - devopsnetwork
      networks:
        devopsnetwork:
      

后语

与Docker V24 及 Docker Compose V2 的安装及使用相似的内容:

Docker V24 及 Docker Compose V2 的安装及使用

Docker 是一款流行的开源容器化平台,使用 Docker 可以有效地隔离应用程序和系统环境,使得应用程序在不同的环境中具有相同的行为 Docker Compose 是一个用于定义和管理多个容器工具

Docker通信全视角:原理、实践与技术洞察

本文全面深入地探讨了Docker容器通信技术,从基础概念、网络模型、核心组件到实战应用。详细介绍了不同网络模式及其实现,提供了容器通信的技术细节和实用案例,旨在为专业从业者提供深入的技术洞见和实际操作指南。 关注【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有10+年

从零开始写 Docker(十八)---容器网络实现(下):为容器插上”网线“

本文为从零开始写 Docker 系列第十八篇,利用 linux 下的 Veth、Bridge、iptables 等等相关技术,构建容器网络模型,为容器插上”网线“。 完整代码见:https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实

Docker部署深度学习模型

Docker部署深度学习模型 基础概念 Docker Docker是一个打包、分发和运行应用程序的平台,允许将你的应用程序和应用程序所依赖的整个环境打包在一起。比如我有一个目标检测的项目,我想分享给朋友,那么他首先需要在自己的电脑上配置好显卡驱动、CUDA、CuDNN,在拿到我的项目后,还需要安装各

从零开始写 Docker(十七)---容器网络实现(中):为容器插上”网线“

本文为从零开始写 Docker 系列第十七篇,利用 linux 下的 Veth、Bridge、iptables 等等相关技术,构建容器网络模型,为容器插上”网线“。 完整代码见:https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实

从零开始写 Docker(十六)---容器网络实现(上):为容器插上”网线”

本文为从零开始写 Docker 系列第十六篇,利用 linux 下的 Veth、Bridge、iptables 等等相关技术,构建容器网络模型,为容器插上”网线“。

Docker 必知必会4----容器之间的通信

前面几篇文章,我们聊了docker的基本概念,以及基本的操作手段: https://www.cnblogs.com/jilodream/p/18177695 初识dockerhttps://www.cnblogs.com/jilodream/p/18184687 基本操作https://www.cn

Docker 必知必会3----使用自己制作的镜像

前面的两篇文章分别讲了,docker的基础概念,设计思路以及docker的基本操作。感兴趣的同学可以查阅: https://www.cnblogs.com/jilodream/p/18177695https://www.cnblogs.com/jilodream/p/18184687 本文我们将介绍

Docker 必知必会2----跟我来一步步执行基本操作

通过前文(https://www.cnblogs.com/jilodream/p/18177695)的了解,我们已经大致明白了什么是docker,为什么要用docker,以及docker的基本设计思路是什么。今天来看下,docker的基本操作有哪些? 1、linux下安装docker 首先我们来安装

Docker 必知必会----初识

什么是Docker?Docker 是一个开源的容器管理引擎。开发者可以通过Docker直接管理应用程序所需要的容器。它的logo如下: 为什么需要Docker使用Docker主要有两个原因,1、屏蔽不同环境的硬件差异,减轻开发人员在不同环境上,为了适配环境差异所需要做的工作。如各项系统配置、环境变量