天天看点

统信UOS服务器操作系统迁移docker目录

作者:鹏大师运维

#夏日生活打卡季#

原文链接:统信UOS服务器操作系统迁移docker目录

hello,大家好啊,今天给大家带来一篇在统信UOS服务器操作系统上迁移docker目录的文章,在工作中我们会发现,当我们没有将/var目录单独分区的时候,运行docker容器后,会将根目录挤压,因此我们可以通过迁移docker目录的方式,释放根路径的磁盘空间,文章内容仅供参考,生产环境请根据实际情况调整,话不多说,让我们开始吧。

1、查看系统版本

[root@localhost ~]# cat /etc/os-version           
[Version]           
SystemName=UnionTech OS Server          
SystemName[zh_CN]=统信服务器操作系统          
ProductType=Server          
ProductType[zh_CN]=服务器          
EditionName=e          
EditionName[zh_CN]=e          
MajorVersion=20          
MinorVersion=1050          
OsBuild=12038.101          
[root@localhost ~]#           

2、安装docker-ce

[root@localhost ~]# yum install docker-ce -y          
Last metadata expiration check: 0:00:46 ago on 2023年06月20日 星期二 14时48分41秒.          
Dependencies resolved.          
===================================================================================          
 Package                        Arch        Version                Repo       Size          
===================================================================================          
Installing:          
 docker-ce                      x86_64      20.10.7-3.uel20        repo       23 M          
Installing dependencies:          
 container-selinux              noarch      2:2.138.0-1.uel20      repo       36 k          
 containerd.io                  x86_64      1.5.5-1.uel20          repo       35 M          
 docker-ce-cli                  x86_64      20.10.7-3.uel20        repo       30 M          
 docker-ce-rootless-extras      x86_64      20.10.7-3.uel20        repo      4.5 M          
 docker-scan-plugin             x86_64      0.7.0-3.uel20          repo      3.7 M          
 libcgroup                      x86_64      0.42.2-3.uel20         repo       95 k          




          
Transaction Summary          
===================================================================================          
Install  7 Packages          




          
Total size: 96 M          
Installed size: 400 M          
Downloading Packages:          
Running transaction check          
Transaction check succeeded.          
Running transaction test          
Transaction test succeeded.          
Running transaction          
  Preparing        :                                                           1/1           
  Installing       : docker-scan-plugin-0.7.0-3.uel20.x86_64                   1/7           
  Installing       : docker-ce-cli-20.10.7-3.uel20.x86_64                      2/7           
  Running scriptlet: docker-ce-cli-20.10.7-3.uel20.x86_64                      2/7           
  Running scriptlet: libcgroup-0.42.2-3.uel20.x86_64                           3/7           
  Installing       : libcgroup-0.42.2-3.uel20.x86_64                           3/7           
  Running scriptlet: libcgroup-0.42.2-3.uel20.x86_64                           3/7           
  Installing       : docker-ce-rootless-extras-20.10.7-3.uel20.x86_64          4/7           
  Installing       : containerd.io-1.5.5-1.uel20.x86_64                        5/7           
  Running scriptlet: containerd.io-1.5.5-1.uel20.x86_64                        5/7           
  Installing       : container-selinux-2:2.138.0-1.uel20.noarch                6/7           
  Running scriptlet: container-selinux-2:2.138.0-1.uel20.noarch                6/7           
Deprecated, use selabel_lookup          




          
  Installing       : docker-ce-20.10.7-3.uel20.x86_64                          7/7           
  Running scriptlet: docker-ce-20.10.7-3.uel20.x86_64                          7/7           
  Verifying        : container-selinux-2:2.138.0-1.uel20.noarch                1/7           
  Verifying        : containerd.io-1.5.5-1.uel20.x86_64                        2/7           
  Verifying        : docker-ce-20.10.7-3.uel20.x86_64                          3/7           
  Verifying        : docker-ce-cli-20.10.7-3.uel20.x86_64                      4/7           
  Verifying        : docker-ce-rootless-extras-20.10.7-3.uel20.x86_64          5/7           
  Verifying        : docker-scan-plugin-0.7.0-3.uel20.x86_64                   6/7           
  Verifying        : libcgroup-0.42.2-3.uel20.x86_64                           7/7           




          
Installed:          
  container-selinux-2:2.138.0-1.uel20.noarch                                                 
  containerd.io-1.5.5-1.uel20.x86_64                                                         
  docker-ce-20.10.7-3.uel20.x86_64                                                           
  docker-ce-cli-20.10.7-3.uel20.x86_64                                                       
  docker-ce-rootless-extras-20.10.7-3.uel20.x86_64                                           
  docker-scan-plugin-0.7.0-3.uel20.x86_64                                                    
  libcgroup-0.42.2-3.uel20.x86_64                                                            




          
Complete!           
统信UOS服务器操作系统迁移docker目录

3、启动docker查看状态

[root@localhost ~]# systemctl start docker          
[root@localhost ~]# systemctl status docker          
● docker.service - Docker Application Container Engine          
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset>          
   Active: active (running) since Tue 2023-06-20 14:51:27 CST; 3s ago          
     Docs: https://docs.docker.com          
 Main PID: 36834 (dockerd)          
    Tasks: 10          
   Memory: 44.0M          
   CGroup: /system.slice/docker.service          
           └─36834 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containe>          




          
6月 20 14:51:26 localhost.localdomain dockerd[36834]: time="2023-06-20T14:51:26.51>          
6月 20 14:51:26 localhost.localdomain dockerd[36834]: time="2023-06-20T14:51:26.51>          
6月 20 14:51:26 localhost.localdomain dockerd[36834]: time="2023-06-20T14:51:26.57>          
6月 20 14:51:27 localhost.localdomain dockerd[36834]: time="2023-06-20T14:51:27.22>          
6月 20 14:51:27 localhost.localdomain dockerd[36834]: time="2023-06-20T14:51:27.35>          
6月 20 14:51:27 localhost.localdomain dockerd[36834]: time="2023-06-20T14:51:27.53>          
6月 20 14:51:27 localhost.localdomain dockerd[36834]: time="2023-06-20T14:51:27.58>          
6月 20 14:51:27 localhost.localdomain dockerd[36834]: time="2023-06-20T14:51:27.58>          
[root@localhost ~]#           
统信UOS服务器操作系统迁移docker目录

4、配置阿里云docker镜像加速器

[root@localhost ~]# mkdir -p /etc/docker          
[root@localhost ~]# tee /etc/docker/daemon.json <<-'EOF'          
> {          
>   "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]          
> }          
> EOF          
{          
  "registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"]          
}          
[root@localhost ~]# systemctl daemon-reload          
[root@localhost ~]# systemctl restart docker          
[root@localhost ~]#           
统信UOS服务器操作系统迁移docker目录

5、拉取nginx镜像

[root@localhost ~]# docker pull nginx          
Using default tag: latest          
latest: Pulling from library/nginx          
a2abf6c4d29d: Pull complete           
a9edb18cadd1: Pull complete           
589b7251471a: Pull complete           
186b1aaa4aa6: Pull complete           
b4df32aa5a72: Pull complete           
a0bcbecc962e: Pull complete           
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31          
Status: Downloaded newer image for nginx:latest          
docker.io/library/nginx:latest          
[root@localhost ~]# 

           
统信UOS服务器操作系统迁移docker目录

6、查看nginx镜像

[root@localhost ~]# docker images          
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE          
nginx        latest    605c77e624dd   17 months ago   141MB          
[root@localhost ~]#           
统信UOS服务器操作系统迁移docker目录

7、启动nginx

[root@localhost ~]# docker run -d --name nginx -p 80:80 nginx          
dcb11489260306d89e54608e0de1cc7efcce6c444b7f9c85b4018c3bef08a783          
[root@localhost ~]# docker ps          
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                               NAMES          
dcb114892603   nginx     "/docker-entrypoint.…"   4 seconds ago   Up 3 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   nginx          
[root@localhost ~]#           
统信UOS服务器操作系统迁移docker目录

8、访问nginx网站,可以看到网站访问成功

[root@localhost ~]# curl http://192.168.122.236          
          
          
          
               
          
          
          


Welcome to nginx!
        
        
If you see this page, the nginx web server is successfully installed and            
working. Further configuration is required.
        




        
        For online documentation and support please refer to            
nginx.org.            
            
Commercial support is available at            
nginx.com.        




        
        Thank you for using nginx.        
        
        
[root@localhost ~]#   

           
统信UOS服务器操作系统迁移docker目录

9、停止docker服务

[root@localhost ~]# systemctl stop docker          
Warning: Stopping docker.service, but it can still be activated by:          
  docker.socket          
[root@localhost ~]# systemctl stop docker.socket           
[root@localhost ~]# systemctl status docker          
● docker.service - Docker Application Container Engine          
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset>          
   Active: inactive (dead)          
     Docs: https://docs.docker.com          




          
6月 20 14:59:15 localhost.localdomain dockerd[37327]: time="2023-06-20T14:59:15.26>          
6月 20 14:59:15 localhost.localdomain systemd[1]: Started Docker Application Conta>          
6月 20 14:59:15 localhost.localdomain dockerd[37327]: time="2023-06-20T14:59:15.30>          
6月 20 15:03:52 localhost.localdomain systemd[1]: Stopping Docker Application Cont>          
6月 20 15:03:52 localhost.localdomain dockerd[37327]: time="2023-06-20T15:03:52.29>          
6月 20 15:03:52 localhost.localdomain dockerd[37327]: time="2023-06-20T15:03:52.52>          
6月 20 15:03:52 localhost.localdomain dockerd[37327]: time="2023-06-20T15:03:52.91>          
6月 20 15:03:52 localhost.localdomain dockerd[37327]: time="2023-06-20T15:03:52.91>          
6月 20 15:03:52 localhost.localdomain systemd[1]: docker.service: Succeeded.          
6月 20 15:03:52 localhost.localdomain systemd[1]: Stopped Docker Application Conta>          
[root@localhost ~]#           
统信UOS服务器操作系统迁移docker目录

10、同步/var/lib/docker/目录到/home/docker

[root@localhost ~]# rsync -aP /var/lib/docker/ /home/docker/          
runtimes/          
swarm/          
tmp/          
trust/          
volumes/          
volumes/backingFsBlockDev          
volumes/metadata.db          
         32,768 100%   41.29kB/s    0:00:00 (xfr#4432, to-chk=0/6359)           
统信UOS服务器操作系统迁移docker目录

11、重新编辑docker服务配置文件

[root@localhost ~]# cp /usr/lib/systemd/system/docker.service /usr/lib/systemd/system/docker.service.bak          
[root@localhost ~]# vi /usr/lib/systemd/system/docker.service          
[root@localhost ~]# cat /usr/lib/systemd/system/docker.service          
[Unit]          
Description=Docker Application Container Engine          
mentation=https://docs.docker.com          
After=network-online.target firewalld.service containerd.service          
Wants=network-online.target          
Requires=docker.socket containerd.service          




          
[Service]          
Type=notify          
# the default is not to use systemd for cgroups because the delegate issues still          
# exists and systemd currently does not support the cgroup feature set required          
# for containers run by docker          
ExecStart=/usr/bin/dockerd --data-root /home/docker          
ExecReload=/bin/kill -s HUP $MAINPID          
TimeoutSec=0          
RestartSec=2          
Restart=always          




          
# Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229.          
# Both the old, and new location are accepted by systemd 229 and up, so using the old location          
# to make them work for either version of systemd.          
StartLimitBurst=3          




          
# Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230.          
# Both the old, and new name are accepted by systemd 230 and up, so using the old name to make          
# this option work for either version of systemd.          
StartLimitInterval=60s          




          
# Having non-zero Limit*s causes performance problems due to accounting overhead          
# in the kernel. We recommend using cgroups to do container-local accounting.          
LimitNOFILE=infinity          
LimitNPROC=infinity          
LimitCORE=infinity          




          
# Comment TasksMax if your systemd version does not support it.          
# Only systemd 226 and above support this option.          
TasksMax=infinity          




          
# set delegate yes so that systemd does not reset the cgroups of docker containers          
Delegate=yes          




          
# kill only the docker process, not all processes in the cgroup          
KillMode=process          
OOMScoreAdjust=-500          




          
[Install]          
WantedBy=multi-user.target           
统信UOS服务器操作系统迁移docker目录
统信UOS服务器操作系统迁移docker目录

12、重新启动docker服务

[root@localhost ~]# systemctl daemon-reload           
[root@localhost ~]# systemctl restart docker          
[root@localhost ~]# systemctl status docker          
● docker.service - Docker Application Container Engine          
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset>          
   Active: active (running) since Tue 2023-06-20 15:10:20 CST; 5s ago          
     Docs: https://docs.docker.com          
 Main PID: 38374 (dockerd)          
    Tasks: 9          
   Memory: 44.1M          
   CGroup: /system.slice/docker.service          
           └─38374 /usr/bin/dockerd --data-root /home/docker          




          
6月 20 15:10:19 localhost.localdomain dockerd[38374]: time="2023-06-20T15:10:19.38>          
6月 20 15:10:19 localhost.localdomain dockerd[38374]: time="2023-06-20T15:10:19.63>          
6月 20 15:10:19 localhost.localdomain dockerd[38374]: time="2023-06-20T15:10:19.67>          
6月 20 15:10:19 localhost.localdomain dockerd[38374]: time="2023-06-20T15:10:19.94>          
6月 20 15:10:20 localhost.localdomain dockerd[38374]: time="2023-06-20T15:10:20.05>          
6月 20 15:10:20 localhost.localdomain dockerd[38374]: time="2023-06-20T15:10:20.19>          
6月 20 15:10:20 localhost.localdomain dockerd[38374]: time="2023-06-20T15:10:20.21>          
6月 20 15:10:20 localhost.localdomain dockerd[38374]: time="2023-06-20T15:10:20.21>          
[root@localhost ~]#           
统信UOS服务器操作系统迁移docker目录

13、查看docker是否启用新的数据目录

[root@localhost ~]# docker info |grep "Docker Root Dir"          
 Docker Root Dir: /home/docker          
[root@localhost ~]#           
统信UOS服务器操作系统迁移docker目录

14、查看并清除历史的docker容器

[root@localhost ~]# docker ps -a          
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS                     PORTS     NAMES          
dcb114892603   nginx     "/docker-entrypoint.…"   10 minutes ago   Exited (0) 8 minutes ago             nginx          
[root@localhost ~]# docker rm nginx           
nginx           
统信UOS服务器操作系统迁移docker目录

15、重新启动nginx容器

[root@localhost ~]# docker run -d --name nginx -p 80:80 nginx          
e7f77c08ed3705dabe8a4c8a21ab71f754ee8c5792aef139a7f089e12235c5c2          
[root@localhost ~]# docker ps           
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                               NAMES          
e7f77c08ed37   nginx     "/docker-entrypoint.…"   6 seconds ago   Up 5 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   nginx          
[root@localhost ~]#           
统信UOS服务器操作系统迁移docker目录

16、访问nginx网站,发现访问正常

[root@localhost ~]# curl http://192.168.122.236          
          
          
          
               
          
          
          


Welcome to nginx!
        
        
If you see this page, the nginx web server is successfully installed and            
working. Further configuration is required.
        




        
        For online documentation and support please refer to            
nginx.org.            
            
Commercial support is available at            
nginx.com.        




        
        Thank you for using nginx.        
        
        
[root@localhost ~]#   

           
统信UOS服务器操作系统迁移docker目录

17、查看磁盘空间,docker数据在/home/docker下

[root@localhost ~]# df -h          
文件系统              容量  已用  可用 已用% 挂载点          
devtmpfs              1.7G     0  1.7G    0% /dev          
tmpfs                 1.7G     0  1.7G    0% /dev/shm          
tmpfs                 1.7G  9.1M  1.7G    1% /run          
tmpfs                 1.7G     0  1.7G    0% /sys/fs/cgroup          
/dev/mapper/uos-root   70G  8.9G   62G   13% /          
tmpfs                 1.7G   28K  1.7G    1% /tmp          
/dev/mapper/uos-home  125G  1.1G  124G    1% /home          
/dev/sda1            1014M  191M  824M   19% /boot          
tmpfs                 343M   56K  343M    1% /run/user/0          
/dev/loop0            522M  522M     0  100% /mnt          
overlay               125G  1.1G  124G    1% /home/docker/overlay2/a1280bbc74922071fe57357fd7dc667e6821ca86ddce4edbb2b4619861cceae2/merged          
[root@localhost ~]#           
统信UOS服务器操作系统迁移docker目录

18、删除原有的/var/lib/docker目录,查看释放的磁盘空间大小

[root@localhost ~]# rm -rf /var/lib/docker          
[root@localhost ~]# df -h          
文件系统              容量  已用  可用 已用% 挂载点          
devtmpfs              1.7G     0  1.7G    0% /dev          
tmpfs                 1.7G     0  1.7G    0% /dev/shm          
tmpfs                 1.7G  9.1M  1.7G    1% /run          
tmpfs                 1.7G     0  1.7G    0% /sys/fs/cgroup          
/dev/mapper/uos-root   70G  8.7G   62G   13% /          
tmpfs                 1.7G   28K  1.7G    1% /tmp          
/dev/mapper/uos-home  125G  1.1G  124G    1% /home          
/dev/sda1            1014M  191M  824M   19% /boot          
tmpfs                 343M   56K  343M    1% /run/user/0          
/dev/loop0            522M  522M     0  100% /mnt          
overlay               125G  1.1G  124G    1% /home/docker/overlay2/a1280bbc74922071fe57357fd7dc667e6821ca86ddce4edbb2b4619861cceae2/merged          
[root@localhost ~]#           
统信UOS服务器操作系统迁移docker目录

继续阅读