前言

  • 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 的安装及使用的更多相关文章

  1. Docker Compose + Traefik v2 快速安装, 自动申请SSL证书 http转https 初次尝试

    前言 昨晚闲得无聊睡不着觉,拿起服务器尝试部署了一下Docker + Traefik v2.1.6 ,以下是一些配置的总结,初次接触,大佬勿喷. 我的系统环境是 Ubuntu 18.04.3 LTS ...

  2. Docker三剑客之Docker Compose

    一.什么是Docker Compose Compose 项目是Docker官方的开源项目,负责实现Docker容器集群的快速编排,开源代码在https://github.com/docker/comp ...

  3. AspNetCore容器化(Docker)部署(三) —— Docker Compose容器编排

    一.前言 上一篇部署了一个最基础的helloworld应用,创建了两个容器和一个network,还算应付得过来. 如果该应用继续引入mysql.redis.job等若干服务,到时候发布一次得工作量之大 ...

  4. Docker决战到底(三) Rancher2.x的安装与使用 - 简书

    原文:Docker决战到底(三) Rancher2.x的安装与使用 - 简书   image.png 当越来越多的容器化应用被部署,一个可以管理编排这些容器的工具此时就显得尤为重要了.目前容器编排领域 ...

  5. DOCKER学习_016:Docker镜像仓库和HARBOR的简单安装和管理

    一 镜像仓库介绍 1.1 简介 镜像仓库用于存放 Docker镜像 Docker registry提供镜像仓库服务 一个 Docker registry可以包含多个镜像仓库 仓库分为公共镜像仓库与私有 ...

  6. Docker(四):Docker 三剑客之 Docker Compose

    前两篇文章我们介绍了 Dockerfile 的使用Docker(二):Dockerfile 使用介绍,我们知道使用一个 Dockerfile 模板文件可以定义一个单独的应用容器,如果需要定义多个容器就 ...

  7. Docker 核心技术之Docker Compose

    Docker Compose 简介 Docker Compose是什么? Docker Compose是一个能一次性定义和管理多个Docker容器的工具. 详细地说: Compose中定义和启动的每一 ...

  8. Docker入门 - 006 Docker 多种数据库的安装

    Docker 安装 MySQL 查找Docker Hub上的mysql镜像 root@VM_16_14_centos ~# docker search mysql INDEX NAME DESCRIP ...

  9. Ubuntu下安装Docker,及Docker的一些常用命令操作

    1.什么是 Docker         Docker 是一个开源项目,Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案.         Docker 的基础是 Linux 容器(LXC ...

  10. Docker深入浅出系列 | Docker Compose多容器实战

    目录 前期准备 Docker Compose是什么 为什么要用Docker Compose Docker Compose使用场景 Docker Compose安装 Compose Yaml文件结构 C ...

随机推荐

  1. Vue_Django 登录注册+图书管理系统

    Vue前端 注册页面 点击查看代码 <template> <div class="register"> <el-row :gutter="2 ...

  2. JAVA SE基础《一》----JAVA入门

    初识Java 1.Java背景知识 java是美国sun公司(Stanford University Network)在1995年推出的一门计算机高级编程语言. Java早期称为Oak(橡树),后期改 ...

  3. tvm relay IR 可视化

    本文地址: https://www.cnblogs.com/wanger-sjtu/p/16819877.html 发现最近relay 的可视化已经在tvm主线上支持了,这里有一个简单的demo代码记 ...

  4. SpringBoot对接阿里云OSS上传文件以及回调(有坑)

    前言 今天在对接阿里云OSS对象存储, 把这过程记录下来 链接 阿里云的内容很多,文档是真的难找又难懂 本文主要是用的PostObject API 加上 Callback参数 PostObject - ...

  5. python图表展示实例

    """Created on Fri Nov 8 16:09:36 2019 @author: DELL""" ""&qu ...

  6. Linux 如何删除乱码的文件

    事情是这样,服务器很多人在使用,以前的离职同事留了一大堆不知道是什么东西. 那些文件看不了,又删不掉,非常碍眼. 我搜索了挺多资料,没有一篇文章能真的解决问题(感觉都是抄来抄去的). 用 SFTP 工 ...

  7. Java List集合根据某字段去重

    去重方法 单个字段为条件去重 /** * 单字段去重 * @param jackpotList1 新集合 * @param jackpotList 需要去重的集合 * @return */ priva ...

  8. PyQt5实时刷新

    对于执行很耗时的程序来说,由于PyQt需要等待程序执行完毕才能进行下一步,这个过程表现在界面上就是卡顿,而如果需要执行这个耗时程序时不断的刷新界面.那么就可以使用QApplication.proces ...

  9. python-多继承构造函数声明问题

    背景 有场景分别定义两组逻辑,随后有统一入口做基类属性的整合 其中两组逻辑的积累构造函数定义入参不同 设计类继承图如: 实际的使用方式抽象为[使用] 小节 实际开发过程中遇到问题 先说结论 pytho ...

  10. 常见的 NoSQL 数据库有哪些?

    前言 今天我们来介绍一下工作开发中常见的一些NoSQL数据库及其基本特点.欢迎在评论区留下文章中没有介绍且好用的​NOSQL数据库. 什么是NOSQL数据库 非关系型数据库又被称为 NoSQL(Not ...