配置Docker使用:更改镜像源、更改配置文件、创建软链接(推荐)、更改时区...
1.更改图像源
1。配置文件路径:/etc/docker/daemon.json,如果不存在则新建文件
{
"registry-mirrors":[
"http://registry.docker-cn.com",
"http://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com",
"http://cr.console.aliyun.com/",
"https://8wb4g36l.mirror.aliyuncs.com"
]
}2。配置完成后重启docker服务
systemctl restart docker.service2.更改存储目录
docker安装完成后 /var/lib/docker.创建容器后,每个容器的数据库大小上限与安装的包含/var/lib/docker的磁盘大小有关。例如,如下图所示:安装的磁盘大小为50GB,docker容器数据大小上限为50GB。如果有多个容器,这些容器共享50GB容量,并分布在挂载磁盘下的其他文件夹中。 。所以如果你有很多容器在运行,或者你恰好是像gitlab这样需要存储大量数据的容器,那么50G当然会有点低。现在,您可以通过更改 docker 存储库路径来扩展容器容量限制。特别是,最好尽快更改docker仓库的路径,以免日后因磁盘满而导致各种容器运行错误。 ![]()
![]()
更改docker仓库路径有3种方式,分别是:
1。方法一:编辑docker配置文件
编辑docker配置文件
vi /usr/lib/systemd/system/docker.service使用“--graph”或“-g”参数指定存储位置
ExecStart=/usr/bin/dockerd --graph /home/docker_home更改后重新加载配置文件并重新启动 docker 服务
// reload配置文件
systemctl daemon-reload
// 重启docker
systemctl restart docker.service2。方法二:创建daemon.json文件
Docker1.12以上版本,可以创建或修改daemon.json文件来指定存储位置。 Docker查看版本命令“docker version”
vi /etc/docker/daemon.json最后添加graph字段指定docker目录
{
"registry-mirrors":[
"http://registry.docker-cn.com",
"http://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com",
"http://cr.console.aliyun.com/",
"https://8wb4g36l.mirror.aliyuncs.com"
],
"graph": "/home/docker_home"
}
更改后需要重新加载配置文件并重启docker服务
systemctl daemon-reload
systemctl restart docker.service3.方法三:创建软链接(推荐)
前两种方法适合第一次安装docker后没有下载镜像或者创建容器的人。即使存储路径改变,也不会受到影响,因为没有镜像或容器。
软链接创建方式适用于创建容器和生成数据容器的情况。这种方法可以防止现有图像和文件的损坏,以及更改存储路径后数据的丢失。具体步骤如下:
① 检查docker路径
默认情况下,Docker存储位置为:/var/lib/docker。您还可以通过以下命令检查 docker 存储库路径
docker info | grep "Docker Root Dir"② 停止 docker 服务
systemctl stop docker③ 移动 docker 文件夹
mv /var/lib/docker /home/docker_home③ 创建软链接
- /home/ dockery 目录。是新安装的docker存储目录
- /var/lib/docker 是软链接目标目录,创建这个目录链接后和原来的docker配置一样还是没变,但实际存储目录是/home /docker_home指向后面
ln -s /home/docker_home /var/lib/docker④启动docker服务
systemctl start docker更改完成后,可以通过以下命令查看docker存储目录:
docker info | grep "Root Dir"
# 修改成功会返回以下内容:
# Docker Root Dir: /home/docker_home查看/var目录/lib/。 docker目录是软链接,指向/home/docker_home且配置正确。 ? -R命令显示主机所在时区为东八区。查看/etc/localtime,可以看到localtime是一个软链接,指向/usr/share/zoneinfo/Asia/Shanghai
[root@test_host home]# date -R
Thu, 08 Sep 2022 11:05:37 +0800
[root@test_host home]# ls -l /etc/localtime
lrwxrwxrwx. 1 root root 35 8月 29 17:17 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai② 将本地时区复制到容器的加载中
docker cp /usr/share/zoneinfo/Asia/Shanghai docker.ui:/etc/localtime③ 加载容器检查时区
docker exec -it docker.ui sh # 进入docker.ui容器
ls /etc # 查看/etc下是否存在已经复制的localtime文件
date -R # 查看时区 如下图所示,/etc 下已经存在从主机复制过来的本地时间文件。时区为东八区,已更正。![]()
![]()
4。复制文件
主要使用“docker cp”命令
1。从主机复制到容器
docker cp主机文件路径名:目录,例如:
docker cp redis_log mysql:/home2。从容器复制到主机
docker cp 容器名称:文件路径托管目录,例如:
docker cp mysql:/home/mayfly-go.sql /home/5.常见故障排除
1.容器报无IPv4网络错误
运行容器时出现错误
如果容器运行时直接报此错误,解决办法:
① 安装♿机器并重启再次网络和docker服务
systemctl restart network
systemctl restart docker创建容器时出现错误
“警告:IPv4转发不起作用。网络宕机了。”![]()
![]()
如果运行镜像和创建容器的时候报这个错误,直接重启docker服务即可:
systemctl restart docker 版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网