The container has been created long ago, how to know its startup parameters (where the data is mounted)
#Suppose a container is started by the following commanddocker run -d --name mysql\ -p 3306:3306\ -e MYSQL_ROOT_PASSWORD=123456\ --restart=always\ mysql:5.5 --character-set-server=utf8 #How to know the startup parameters through the container name[root@jenkins ~]# docker inspect mysql_cdh [ { "Id": "fbc3fba81b57bc5b5871746098b5f1f7ef0ed7716a786584a5effbb88ba156e6", "Created": "2019-09-25T01:43:37.720505875Z", "Path": "", "Args": [ "--character-set-server=utf8" ], "HostConfig": { "Binds": [ "mysql-data:/var/lib/mysql" ], "ContainerIDFile": "", "LogConfig": { "Type": "json-file", "Config": {} }, "NetworkMode": "default", "PortBindings": { "3306/tcp": [{ "HostIp": "", "HostPort": "3306"} ] }, "RestartPolicy": { "Name": "always", "MaximumRetryCount": 0 }, "Mounts": [ { "Type": "volume", "Name": "mysql-data", "Source": "/var/lib/docker/volumes/mysql-data/_data", "Destination": "/var/lib/mysql", "Driver": "local", "Mode": "z", "RW": true, "Propagation": "" } ],
1. Mirror layer: file storage path
[root@master ~]# docker image inspect nginx |tail -n 22 "GraphDriver": { "Data": { "LowerDir": "/var/lib/docker/overlay2/bf20cf788cc053f00ff1467525d50e19bd1cf07a2167f72511bdfcb28918a472/diff:/var/lib/docker/overlay2/317d80bb7ae58ed288be9ebd84aeb5b4b3a1c06f3211f5d1f32d89b629d1876e/diff", "MergedDir": "/var/lib/docker/overlay2/7782d0eb292fdc8bbd73bf9bae2d65468e8aba0bcd6baed55ac348618b80ae16/merged", "UpperDir": "/var/lib/docker/overlay2/7782d0eb292fdc8bbd73bf9bae2d65468e8aba0bcd6baed55ac348618b80ae16/diff", "WorkDir": "/var/lib/docker/overlay2/7782d0eb292fdc8bbd73bf9bae2d65468e8aba0bcd6baed55ac348618b80ae16/work" }, "Name": "overlay2" },
2. Container layer: file storage path
#1, Start the container[root@master ~]# docker run -d --name nginx2 nginx a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8 #2, Get the container id[root@master ~]# docker inspect nginx2 | grep -i id [root@master ~]# docker inspect nginx2 | grep -i id "Id": "a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8", "Pid": 2069, "ExecIDs": null, "ContainerIDFile": "", #View container temporary files--the file generated randomly at each creation (container layer)[root@master ~]# docker inspect nginx2 | grep -i path "Path": "nginx", "ResolvConfPath": "/var/lib/docker/containers/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8/", "HostnamePath": "/var/lib/docker/containers/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8/hostname", "HostsPath": "/var/lib/docker/containers/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8/hosts", "LogPath": "/var/lib/docker/containers/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8/", #Search the container data storage directory through the container id: /var/lib/docker/overlay2/container id###### #Compare the above "Mirror Layer: File Storage Path", you can see that the container maps the files of the mirror layer through LowerDir mounted###### [root@master ~]# docker inspect nginx2 | grep -i dir "LowerDir": "/var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b-init/diff:/var/lib/docker/overlay2/7782d0eb292fdc8bbd73bf9bae2d65468e8aba0bcd6baed55ac348618b80ae16/diff:/var/lib/docker/overlay2/bf20cf788cc053f00ff1467525d50e19bd1cf07a2167f72511bdfcb28918a472/diff:/var/lib/docker/overlay2/317d80bb7ae58ed288be9ebd84aeb5b4b3a1c06f3211f5d1f32d89b629d1876e/diff", "MergedDir": "/var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b/merged", "UpperDir": "/var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b/diff", "WorkDir": "/var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b/work"
Modify container ports the day after tomorrow
Through the container layer file, find the configuration file and modify the port of the container map
[root@docker d93185e3a0....2e544ccfa]# pwd /var/lib/docker/containers/d93185e3a0....2e544ccfa [root@docker d93185e3a0....2e544ccfa]# cat {"Binds":["/dockersuperset:/home/superset"],"ContainerIDFile":"", "LogConfig":{"Type":"json-file","Config":{}},"NetworkMode":"default", "PortBindings":{"8088/tcp":[{"HostIp":"","HostPort":"8099"}]}......
3. Enter the mirror container file storage directory and modify the configuration file
# Enter the mirror container file storage directory and modify the configuration file[root@master ~]# cd /var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls diff link lower merged work [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls diff/run/ [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls diff/var/cache/nginx/ client_temp fastcgi_temp proxy_temp scgi_temp uwsgi_temp [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls merged/ bin/ dev/ etc/ lib/ media/ opt/ root/ sbin/ sys/ usr/ boot/ .dockerenv home/ lib64/ mnt/ proc/ run/ srv/ tmp/ var/ [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls merged/etc/nginx/ fastcgi_params koi-utf koi-win modules scgi_params uwsgi_params win-utf [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# head merged/etc/nginx/ user nginx; worker_processes 1; #Modify the configuration file here, remove the semicolons of user nginx; worker_process 1; to see if the configuration in the container is changed[root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# head merged/etc/nginx/ -n 3 user nginx worker_processes 1 #Login the container and view the modified configuration: Verify whether it is effective[root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# docker exec -it nginx2 bash root@a9c9f31cdccf:/# head /etc/nginx/ -n 3 user nginx worker_processes 1
4. Modify the default storage path
a, reconstruction/var/lib/dockerTable of contents #Back up data to new storage pathservice docker stop mkdir / mv /var/lib/docker/* / #Create a soft connectionmkdir /home/docker-data mv //* /home/docker-data/ && rmdir / ln -s /home/docker-data /var/lib/docker b, Modify configuration vi /usr/lib/systemd/system/ ExecStart=/usr/bin/dockerd --graph /new-path/docker #reload configuration filesystemctl daemon-reload #Restart dockersystemctl restart
Supplementary knowledge:Docker Specify the data storage directory
Docker specifies the storage directory (the original parameter --graph has expired.)
Method 1
1. Configure /etc/docker/ in the Docker configuration file
The following command is added when there is no content in the file. If there is content, it is necessary
cat << EOF >>/etc/docker/ { "data-root": "/mnt/docker-data" } EOF systemctl restart docker
Method 2
2. Configure in startup parameters
vim /usr/lib/systemd/system/
After adding it to the EXECStart in it, it is as follows:
ExecStart=/usr/bin/dockerd --data-root='/home/docker' systemctl daemon-reload systemctl restart docker
The above docker file storage path and obtaining the container startup command operation is all the content I share with you. I hope you can give you a reference and I hope you can support me more.