简介
总之,是个好东西,是一种新兴的虚拟化方式,一次创建或配置,任意地方正常运行。
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)为例。
卸载旧版本
sudo apt-get remove docker docker-engine docker.io
sudo apt-get update
通过apt安装
# HTTPS 传输的软件包以及 CA 证书
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
# 添加软件源的 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 使用阿里云稳定版仓库
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
安装docker ce
sudo apt-get install docker-ce
启动docker ce
sudo systemctl enable docker
sudo systemctl start docker
建立docker用户组
# 建立docker组
sudo groupadd docker
# 将当前用户加入docker组
sudo usermod -aG docker $USER
# 更加安全的方式,修改sudoers文件,增加如下内容:
%wheel ALL=(ALL) NOPASSWD: /usr/bin/docker, /usr/bin/docker-compose
# 创建别名
alias docker='sudo docker'
测试docker是否安装正确
# 退出当前终端并重新登录
docker -v
systemctl status docker
docker run hello-world
镜像加速
# 打开文件
sudo vim /etc/docker/daemon.json
# 写入如下json
{
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}
# 重新启动服务
sudo systemctl daemon-reload
sudo systemctl restart docker
# 查看docker基本信息
docker info
# 更新如下:
# Registry Mirrors:
# https://docker.mirrors.ustc.edu.cn/
# Live Restore Enabled: false