Onela@胡邹不胡诌
_

Docker容器化环境配置笔记

Jan 10, 2022 · 5 min · Docker

docker安装

本篇不单独描述docker安装,单独篇幅讲解docker容器化的操作,省略。

Ubuntu 脚本安装

shell

# 使用官方安装脚本自动安装
curl -sSL https://get.docker.com/ | sh
 
# 指定安装源
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
 
# 阿里云的安装脚本
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
 
 
# 启动docker
systemctl start docker
 
 
# 设置docker开机启动
systemctl enable docker

执行apt update升级报错问题解决

shell

root@redis:~# apt update
Hit:1 http://security.ubuntu.com/ubuntu jammy-security InRelease    
Hit:2 http://cn.archive.ubuntu.com/ubuntu jammy InRelease           
Hit:3 http://cn.archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:4 http://cn.archive.ubuntu.com/ubuntu jammy-backports InRelease
Ign:5 http://mirrors.aliyun.com/docker-engine/apt/repo ubuntu-jammy InRelease
Err:6 http://mirrors.aliyun.com/docker-engine/apt/repo ubuntu-jammy Release
  404  Not Found [IP: 66.135.23.82 9627]
Reading package lists... Done
E: The repository 'http://mirrors.aliyun.com/docker-engine/apt/repo ubuntu-jammy Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
 
# 如果无法执行升级,进入/etc/apt/sources.list.d/目录
root@redis:~# cd /etc/apt/sources.list.d/
root@redis:/etc/apt/sources.list.d# ll
total 12
drwxr-xr-x 2 root root 4096 Jun 19 09:52 ./
drwxr-xr-x 9 root root 4096 Jun 19 09:56 ../
-rw-r--r-- 1 root root   84 Jun 19 09:56 docker.list
# 重命名docker.list.save
root@redis:/etc/apt/sources.list.d# mv docker.list docker.list.save
 
# 在执行更新检测 apt update则自检通过,再执行更新命令即可
apt upgrade

迁移docker容器中的mysql数据目录

两种方式迁移Docker的默认安装(存储)目录,默认的安装目录应该是:/var/lib/docker

前置工作

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

# 确认docker安装目录
sudo docker info | grep "Docker Root Dir"

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

在开始迁移之前,首先复制原 Docker 安装(存储)目录到新的路径下:

# 关闭docker
systemctl stop docker.socket

# 复制文件
cp -a /var/lib/docker /data/lib/

然后备份原目录数据:

mv -u /var/lib/docker /var/lib/docker.bak

方法一:软连接

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

首先,关停 Docker 服务:

sudo systemctl stop docker
# or
sudo service docker stop

接着,新建一个 /var/lib/docker 的软链:

sudo ln -fs /data/lib/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 官方在这个发行版本就 deprecated 了 graph 这个 feature,所以如果你机器上安装的 Docker 版本 >= v17.05.0,则无法通过在 /etc/default/docker 配置文件中指定 graph 参数来修改 Docker 的默认安装(存储)目录了,具体参见官网文档:Docker Docs

好在天无绝人之路,新版本的 Docker 还有其他方式可以达到我们修改安装(存储)目录的目的:通过修改(新建)/etc/docker/daemon.json,指定 data-root 参数的值。

按如下操作:

vim /etc/docker/daemon.json

加入

# overlay2这个是 Docker 是默认设置,这里也可以不用加
{
    "data-root": "/data/lib/docker",
    "storage-driver": "overlay2",
    "registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://dockerhub.azk8s.cn",
        "https://docker.mirrors.ustc.edu.cn",
        "https://mirror.ccs.tencentyun.comn",
        "https://dockerproxy.com",
        "https://mirror.baidubce.com",
        "https://registry.docker.com"
    ]
}

# 由于国内镜像因监管要求很多已经失效,可能会配置错误造成无法下载使用的情况,请更新受监管的镜像服务地址
# https://gist.github.com/y0ngb1n/7e8f16af3242c7815e7ca2f0833d3ea6

重启 Docker & 清理原安装(存储)目录

最后,重启 Docker 服务:

# 使配置生效
systemctl daemon-reload

# 重启 Docker 服务
systemctl restart docker

通过上述任一方法完成迁移之后,在确认 Docker 能正常工作之后,删除备份的原目录数据:

rm -rf /var/lib/docker.bak
Edit this page on GitHub Last updated: 2024/6/20 10:03:59