简介

总之,是个好东西,是一种新兴的虚拟化方式,一次创建或配置,任意地方正常运行。
Docker包括三个基本概念:

  • 镜像(Image)
  • 容器(container)
  • 仓库(repository)

    Docker镜像

    对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 root 文件系统。

Docker容器

镜像( Image )和容器( Container )的关系,就像是面向对象程序设计中的 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚 至自己的用户 ID 空间。
容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。所有的文件写入操作,都应该使用 数据卷(Volume)、或者绑定宿主目录。

Docker仓库

集中的存储、分发镜像的服务。

安装

这里以Ubuntu 20.04 LTS (GNU/Linux 5.4.0-72-generic x86_64)为例。

卸载旧版本

  1. sudo apt-get remove docker docker-engine docker.io
  2. sudo apt-get update

通过apt安装

  1. # HTTPS 传输的软件包以及 CA 证书
  2. sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
  3. # 添加软件源的 GPG 密钥
  4. curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
  5. # 使用阿里云稳定版仓库
  6. sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
  7. sudo apt-get update

安装docker ce

  1. sudo apt-get install docker-ce

启动docker ce

  1. sudo systemctl enable docker
  2. sudo systemctl start docker

建立docker用户组

  1. # 建立docker组
  2. sudo groupadd docker
  3. # 将当前用户加入docker组
  4. sudo usermod -aG docker $USER
  5. # 更加安全的方式,修改sudoers文件,增加如下内容:
  6. %wheel ALL=(ALL) NOPASSWD: /usr/bin/docker, /usr/bin/docker-compose
  7. # 创建别名
  8. alias docker='sudo docker'

测试docker是否安装正确

  1. # 退出当前终端并重新登录
  2. docker -v
  3. systemctl status docker
  4. docker run hello-world

镜像加速

  1. # 打开文件
  2. sudo vim /etc/docker/daemon.json
  3. # 写入如下json
  4. {
  5. "registry-mirrors": [
  6. "https://registry.docker-cn.com"
  7. ]
  8. }
  9. # 重新启动服务
  10. sudo systemctl daemon-reload
  11. sudo systemctl restart docker
  12. # 查看docker基本信息
  13. docker info
  14. # 更新如下:
  15. # Registry Mirrors:
  16. # https://docker.mirrors.ustc.edu.cn/
  17. # Live Restore Enabled: false