Featured image of post Docker

Docker

Docker handbook for myself

安装

Ref https://yeasy.gitbook.io/docker_practice/install

使用 APT 安装

由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。

1
2
3
4
5
6
7
8
$ sudo apt-get update

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。 为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。

1
2
3
4
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 官方源
# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

然后,我们需要向 sources.list 中添加 Docker 软件源

1
2
3
4
5
6
7
8
$ echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 官方源
# $ echo \
#   "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
#   $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

以上命令会添加稳定版本的 Docker APT 镜像源,如果需要测试版本的 Docker 请将 stable 改为 test。

更新 apt 软件包缓存,并安装 docker-ce:

1
2
3
$ sudo apt-get update

$ sudo apt-get install docker-ce docker-ce-cli containerd.io

更换默认安装路径

Ref https://strikefreedom.top/migrate-docker-installation-directory

两种方法迁移 Docker 的默认安装(存储)目录

如果是通过 Ubuntu 的 apt-get 安装的 Docker,默认的安装目录应该是: /var/lib/docker

为了完全确定,可以使用以下的命令查询真正的安装路径:

1
$ sudo docker info | grep "Docker Root Dir"

下文以 /home/docker 这个路径作为要迁移的新 Docker 安装(存储)目录

1
2
3
4
5
# 首先复制原 Docker 安装(存储)目录到新的路径下:
$ cp -a /var/lib/docker /home/

# 然后备份原目录数据:
$ mv -u /var/lib/docker /var/lib/docker.bak

软链接

通过把 Docker 的原安装(存储)目录移动到自定义的其他路径下,然后在原位置下建立软链接是最简单快捷的方式。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 首先,关停 Docker 服务:
$ sudo systemctl stop docker
# or
$ sudo service docker stop

#接着,新建一个 /var/lib/docker 的软链:
sudo ln -fs /home/docker /var/lib/docker

#最后,重启 Docker 服务:
$ sudo systemctl start docker
# or
$ sudo service docker start

启动 Docker 之后,以后你 pull image 和 run container,Docker 写入的路径依然是/var/lib/docker ,但是因为软链的设置,实际已经是往新的目录写入了。至此,完成了 Docker 安装(存储)目录的迁移。

修改配置文件

Docker 版本 >= v17.05.0 的 Docker 可以通过修改(新建) /etc/docker/daemon.json ,指定 data-root 参数的值,来达到我们修改安装(存储)目录的目的。

按如下操作:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
$ vim /etc/docker/daemon.json

# 添加

{
    "data-root": "/home/docker",
    "storage-driver": "overlay2" # 这个是 Docker 是默认设置,这里也可以不用加
}

# 重启 Docker 服务
$ sudo systemctl restart docker
# or
$ sudo service docker restart

docker-compose

安装

可至Github Release 页面下载最新发行的版本:https://github.com/docker/compose/releases

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 下载
$ sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 权限
$ sudo chmod +x /usr/local/bin/docker-compose

# 创建软链:
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# 测试是否安装成功:
$ docker-compose --version
VPROMISE ALL RIGHT RESERVED