1.认识docker

引子

引子1:

假设我们在一个公司上班,公司使用某种后端编程语言为主要技术栈进行软件开发,比如 NodeJAVAPHP 等,这里就使用 Node 举例。我们使用 Node 进行软件开发的时候,需要配置 Node 的开发环境,软件本身可能还需要很多依赖项也要安装,同时我们软件开发完以后还需要进行测试,测试完以后要进行部署,为了上线后不出现意想不到的问题,线上服务器和测试服务器的各项配置要一样。如果我们线上服务器有很多台,那么我们要重复配置很多次。如果能将这些应用以及他们需要的环境,做成标准件,用的时候直接装这个标准件该多好。

引子2:

你在一个小公司上班,公司只有一台不错的服务器,但是公司有两个产品,由于它们都依赖某个软件,但是依赖的这个软件的版本又不同,这就需要两台完全独立的运行环境。怎么处理呢?很容易想到的一种方案是:使用虚拟化技术,在这台服务器上虚拟出两台机器,然后各自装个系统,然后再分别部署两个产品即可。但是,这些虚拟出的操作系统,本身就需要大量宿主服务器资源维持,让本不富裕的宿主服务器更是雪上加霜。如果能有一项既能隔离应用运行环境,又额外开销较小的方案该多好。


容器技术

容器技术也是虚拟化技术的一种,是一种比较轻量级的虚拟化,它能有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。Docker 就是容器工具的一种。

容器和传统虚拟化技术的对比:


从上面的图我们可以看出:

  1. 虚拟机运行的是一个完整的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多。

  2. 容器宿主机上运行,并与其它容器共享主机的内核,它运行一个独立的进程,不占用其他任何可执行文件的内存,非常轻量。


Docker 安装

Docker在2017年3月1日后,版本发生了改变,之前叫:dockerdocker-engine,之后分成了企业版和社区版,社区版叫docker-ce。我们这里学习的是 docker-ce ,系统使用的是 Rocky(RedHat) 8.5

官方安装文档:

https://docs.docker.com/install/linux/docker-ce/centos/

https://docs.docker.com/engine/install/rhel/

  1. 安装 yum 工具包集合。

    yum install -y yum-utils
  2. 添加 docker-ce 的稳定源(以下二选一即可)

    # 这个是官方镜像源
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    # 这个是阿里云的镜像源
    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  3. 安装 docker-ce

    sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  4. 查看 docker 版本

    docker --version
  5. 启动、关闭和重启 docker

    # 启动docker
    systemctl start docker
    # 关闭
    systemctl stop docker
    # 重启
    systemctl restart docker


附1:设置 Docker 开机启动:

如果需要开机启动docker,可以使用下面的命令进行设置。

# 设置开机自动启动
systemctl enable docker
# 取消开机自动启动
systemctl disable docker


附2:配置国内镜像仓库:

如果觉得 docker 默认的仓库速度比较慢的话,可以配置使用国内的源。

  1. 新建配置文件或修改配置文件

    vi /etc/docker/daemon.json
  2. 然后再配置文件中加入国内的镜像地址即可:

    # 可以加入多个
    {
       "registry-mirrors": [
           "https://mirror.baidubce.com"
      ]
    }
  3. 然后重启docker

    systemctl daemon-reload
    systemctl restart docker
  4. 检验是否生效

    docker info

    查看结果中的 Registry Mirrors 项的结果。


这里收集了几个国内的镜像地址:

1.docker中国区官方镜像:https://registry.docker-cn.com

2.网易:http://hub-mirror.c.163.com

3.中国科技大学:https://docker.mirrors.ustc.edu.cn

4.阿里云:https://registry.cn-hangzhou.aliyuncs.com

5.腾讯云:https://mirror.ccs.tencentyun.com

6.百度云:https://mirror.baidubce.com


附3:卸载旧版方法:

如果之前安装过老版本或者系统自带的有老版本的docker,那么需要卸载一下旧版本:

yum remove docker \
                 docker-client \
                 docker-client-latest \
                 docker-common \
                 docker-latest \
                 docker-latest-logrotate \
                 docker-logrotate \
                 docker-engine \
                 podman \
                 runc



关键词: docker 安装 linux 镜像
微信 遇到疑问可加微信进行反映