天天看點

統信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目錄

繼續閱讀