docker用法整理:更换镜像源、修改配置文件、创建软链接(推荐)、修改时区…

2022-11-2709:38:24服务器及运维Comments1,265 views字数 3066阅读模式
作者:大刚测试开发实战文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

一、更换镜像源

1.配置文件路径:/etc/docker/daemon.json,若不存在则新建此文件文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

{
        "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"
]
}
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html
docker用法整理:更换镜像源、修改配置文件、创建软链接(推荐)、修改时区…

2.配置完成后重启docker服务文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

systemctl restart docker.service

二、更换存储目录

docker安装完成后,默认存储路径为/var/lib/docker。创建容器后,每个容器的数据卷容量上限与/var/lib/docker所在的挂载的磁盘大小有关。例如下图所示:挂载的磁盘大小为50GB,则docker容器数据卷上限就是50GB,如果有多个容器,则这些容器共享50GB的容量,而且同时也与挂载磁盘下的其他目录共享使用。那么如果运行的容器数量较多,或是遇到需要存储大量数据如gitlab这类容器,50G显然就有些捉襟见肘。此时可以通过修改docker存储路径的方式扩容容器的容量上限。特别提一句,docker存储路径最好尽早修改,这样可以避免后期因磁盘写满导致的各种容器运行异常问题。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html
docker用法整理:更换镜像源、修改配置文件、创建软链接(推荐)、修改时区…

三种方式修改docker存储路径,分别为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

1.方式一:修改docker配置文件

编辑docker配置文件文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

vi /usr/lib/systemd/system/docker.service

使用"--graph"或"-g"参数指定存储位置文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

ExecStart=/usr/bin/dockerd --graph /home/docker_home

修改完成后重新加载配置文件并重启docker服务文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

// reload配置文件 
systemctl daemon-reload 
 
// 重启docker
systemctl restart docker.service

2.方式二:创建daemon.json文件

docker1.12或以上版本,可以创建或修改daemon.json文件来指定存储位置。docker查看版本命令“docker version”文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

vi /etc/docker/daemon.json

在最后添加graph字段,定义docker目录文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

{
        "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服务文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

systemctl daemon-reload
systemctl restart docker.service

3.方式三:创建软链接(推荐)

前两种方式适用于首次安装docker后没有pull过镜像、创建过容器。即使修改了存储路径,因为没有镜像和容器,所以也不会产生任何影响。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

创建软链接的方式,适用于已经创建过容器、并且容器已经产生数据的情况。这种方式可以避免对镜像及现有容器数据造成破坏,以及更改存储路径后找不到数据的情况。具体步骤如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

① 查看docker路径文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

默认情况下Docker的存放位置为:/var/lib/docker,也可以通过如下命令查看docker存储路径文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

docker info | grep "Docker Root Dir"

② 停掉docker服务文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

systemctl stop docker

③ 移动docker目录文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

mv /var/lib/docker /home/docker_home

③ 创建软链接文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

  • /home/docker_home为源文件目录,也就是新设置的docker存储目录
  • /var/lib/docker为软链接目标目录,与此目录建立链接后,相当于原来的docker配置保持不变,但真正的存储目录是其背后所指向的/home/docker_home
ln -s /home/docker_home /var/lib/docker

④ 启动docker服务文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

systemctl start docker

修改完成后,我们可以通过以下命令查看docker的存储目录:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

docker info | grep "Root Dir"  
# 修改成功会返回以下内容:
# Docker Root Dir: /home/docker_home

查看/var/lib/目录,docker目录是一个软链接,指向/home/docker_home,配置正确。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html
docker用法整理:更换镜像源、修改配置文件、创建软链接(推荐)、修改时区…

三、修改时区

1.创建容器时设置时区

创建时增加映射使用主机时区文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime

2.创建容器后修改时区

① 查看宿主机时区文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

通过date -R命令可以看出,宿主机的时区为东八区,查看/etc/localtime,可以看出localtime实际上是一个软链接,背后指向的是/usr/share/zoneinfo/Asia/Shanghai文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

[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容器内部文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

docker cp /usr/share/zoneinfo/Asia/Shanghai docker.ui:/etc/localtime

③ 进入容器内部查看时区文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

docker exec -it docker.ui sh  # 进入docker.ui容器
ls /etc  # 查看/etc下是否存在已经复制的localtime文件
date -R  # 查看时区

通过下图可以看出,/etc下已经存在了宿主机复制过来的localtime文件,时区为东八区,已经修正。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html
docker用法整理:更换镜像源、修改配置文件、创建软链接(推荐)、修改时区…

四、拷贝文件

主要用到"docker cp"命令文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

1.从宿主机拷贝到容器

docker cp 宿主机文件路径 容器名:目录,例如:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

docker cp redis_log mysql:/home

2.从容器内拷贝到宿主机

docker cp 容器名:文件路径 宿主机目录,例如:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

docker cp mysql:/home/mayfly-go.sql /home/

五、常见问题解决

1.容器报错ipv4网络不可用

运行容器时报错

如果是容器运行直接报这个错, 解决方式:
① 在宿主机上执行文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

echo "net.ipv4.ip_forward=1" >>/usr/lib/sysctl.d/00-system.conf  

② 重启network和docker服务文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

systemctl restart network
systemctl restart docker

创建容器时报错

“WARNING: IPv4 forwarding is disabled. Networking will not work.”文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html
docker用法整理:更换镜像源、修改配置文件、创建软链接(推荐)、修改时区…

如果是运行镜像、创建容器的时候报这个错,则直接重启docker服务:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html

systemctl restart docker
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30152.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/yunwei/30152.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定