容器管理
1.停止正在运行的docker: systemctl stop docker 2.创建文件夹:mkdir -p /xxx/disk (xxx/disk为新磁盘目录名) 3.移动/var/lib/docker/目录到新目录中: mv /var/lib/docker /xxx/disk/ ###(假设新磁盘空间多的话 先copy -r /var/lib/docker . 一份) 4.软连接/disk/docker到/var/lib/里: ln -s /xxx/disk/docker /var/lib/ 5.启动docker: systemctl start docker
1.创建容器常用选项
2.容器资源限制
3.管理容器常用命令
docker 将正在运行的容器打包为镜像 将容器打包成镜像 docker commit -a "runoob.com" -m "my apache" 容器名称或id 打包的镜像名称:标签 OPTIONS说明: -a :提交的镜像作者; -c :使用Dockerfile指令来创建镜像; -m :提交时的说明文字; -p :在commit时,将容器暂停。
docker ps : 列出容器 语法 docker ps [OPTIONS] OPTIONS说明: -a :显示所有的容器,包括未运行的。 -f :根据条件过滤显示的内容。 --format :指定返回值的模板文件。 -l :显示最近创建的容器。 -n :列出最近创建的n个容器。 --no-trunc :不截断输出。 -q :静默模式,只显示容器编号。 -s :显示总的文件大小。 实例 列出所有在运行的容器信息。 runoob@runoob:~$ docker ps CONTAINER ID IMAGE COMMAND ... PORTS NAMES 09b93464c2f7 nginx:latest "nginx -g 'daemon off" ... 80/tcp, 443/tcp myrunoob 96f7f14e99ab mysql:5.6 "docker-entrypoint.sh" ... 0.0.0.0:3306->3306/tcp mymysql 列出最近创建的5个容器信息。 runoob@runoob:~$ docker ps -n 5 CONTAINER ID IMAGE COMMAND CREATED 09b93464c2f7 nginx:latest "nginx -g 'daemon off" 2 days ago ... b8573233d675 nginx:latest "/bin/bash" 2 days ago ... b1a0703e41e7 nginx:latest "nginx -g 'daemon off" 2 days ago ... f46fb1dec520 5c6e1090e771 "/bin/sh -c 'set -x \t" 2 days ago ... a63b4a5597de 860c279d2fec "bash" 2 days ago ... 列出所有创建的容器ID。 runoob@runoob:~$ docker ps -a -q 09b93464c2f7 b8573233d675 b1a0703e41e7 f46fb1dec520 a63b4a5597de 6a4aa42e947b de7bb36e7968 43a432b73776 664a8ab1a585 ba52eb632bbd ...
[root@localhost ~]# docker container run -d mysql:5.7 #运行容器到后台 361d4b9f85a7c8734d3dedf2497d67f81588adcdf606dd3eac87a204dffcb22f [root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 361d4b9f85a7 mysql:5.7 "docker-entrypoint.s…" 38 seconds ago Exited (1) 36 seconds ago competent_varahamihira
[root@localhost ~]# docker container inspect 361d4b9f85a7 #查看容器详细信息 [ { "Id": "361d4b9f85a7c8734d3dedf2497d67f81588adcdf606dd3eac87a204dffcb22f", "Created": "2019-08-14T23:40:12.231728222Z", "Path": "docker-entrypoint.sh", "Args": [ "mysqld" ], "State": { "Status": "exited", "Running": false, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 0, "ExitCode": 1, "Error": "", "StartedAt": "2019-08-14T23:40:13.114619629Z", "FinishedAt": "2019-08-14T23:40:13.261352398Z" }, "Image": "sha256:e1e1680ac726cf9d328fb567e4107031feadcb3904d9206ad2a258f9e472ea10", "ResolvConfPath": "/var/lib/docker/containers/361d4b9f85a7c8734d3dedf2497d67f81588adcdf606dd3eac87a204dffcb22f/resolv.conf", "HostnamePath": "/var/lib/docker/containers/361d4b9f85a7c8734d3dedf2497d67f81588adcdf606dd3eac87a204dffcb22f/hostname", "HostsPath": "/var/lib/docker/containers/361d4b9f85a7c8734d3dedf2497d67f81588adcdf606dd3eac87a204dffcb22f/hosts", "LogPath": "/var/lib/docker/containers/361d4b9f85a7c8734d3dedf2497d67f81588adcdf606dd3eac87a204dffcb22f/361d4b9f85a7c8734d3dedf2497d67f81588adcdf606dd3eac87a204dffcb22f-json.log", "Name": "/competent_varahamihira", "RestartCount": 0, "Driver": "overlay2", "Platform": "linux", "MountLabel": "", "ProcessLabel": "", "AppArmorProfile": "", "ExecIDs": null, "HostConfig": { "Binds": null, "ContainerIDFile": "", "LogConfig": { "Type": "json-file", "Config": {} }, "NetworkMode": "default", "PortBindings": {}, "RestartPolicy": { "Name": "no", "MaximumRetryCount": 0 }, "AutoRemove": false, "VolumeDriver": "", "VolumesFrom": null, "CapAdd": null, "CapDrop": null, "Capabilities": null, "Dns": [], "DnsOptions": [], "DnsSearch": [], "ExtraHosts": null, "GroupAdd": null, "IpcMode": "private", "Cgroup": "", "Links": null, "OomScoreAdj": 0, "PidMode": "", "Privileged": false, "PublishAllPorts": false, "ReadonlyRootfs": false, "SecurityOpt": null, "UTSMode": "", "UsernsMode": "", "ShmSize": 67108864, "Runtime": "runc", "ConsoleSize": [ 0, 0 ], "Isolation": "", "CpuShares": 0, "Memory": 0, "NanoCpus": 0, "CgroupParent": "", "BlkioWeight": 0, "BlkioWeightDevice": [], "BlkioDeviceReadBps": null, "BlkioDeviceWriteBps": null, "BlkioDeviceReadIOps": null, "BlkioDeviceWriteIOps": null, "CpuPeriod": 0, "CpuQuota": 0, "CpuRealtimePeriod": 0, "CpuRealtimeRuntime": 0, "CpusetCpus": "", "CpusetMems": "", "Devices": [], "DeviceCgroupRules": null, "DeviceRequests": null, "KernelMemory": 0, "KernelMemoryTCP": 0, "MemoryReservation": 0, "MemorySwap": 0, "MemorySwappiness": null, "OomKillDisable": false, "PidsLimit": null, "Ulimits": null, "CpuCount": 0, "CpuPercent": 0, "IOMaximumIOps": 0, "IOMaximumBandwidth": 0, "MaskedPaths": [ "/proc/asound", "/proc/acpi", "/proc/kcore", "/proc/keys", "/proc/latency_stats", "/proc/timer_list", "/proc/timer_stats", "/proc/sched_debug", "/proc/scsi", "/sys/firmware" ], "ReadonlyPaths": [ "/proc/bus", "/proc/fs", "/proc/irq", "/proc/sys", "/proc/sysrq-trigger" ] }, "GraphDriver": { "Data": { "LowerDir": "/var/lib/docker/overlay2/40a77a2182f5ef1d959b26e11944ab2846995ea863f968422c21bf8fa7684189-init/diff:/var/lib/docker/overlay2/af8a3291147ba2342d3d5720389ffc54dd262522ccc4e4a326440d3d09f1baba/diff:/var/lib/docker/overlay2/4744ed10484432a1738cbd9aefcac25be11f045d4fc1e3c82d28636d40f58058/diff:/var/lib/docker/overlay2/3ebb4822fc3a423dd554c228d8e434e1c43c27f98aa6618d1d8bff8a564f6e2b/diff:/var/lib/docker/overlay2/a2def021cafd4ab790649bb63958aed08637cda934e11fcec1450ce269337be5/diff:/var/lib/docker/overlay2/6884e52e5a70d1fe745892c3ce51662b3a60dbb6edadfbc457b1987654c35960/diff:/var/lib/docker/overlay2/690a7c2ca76224232c595934f4ffd9084b848755141c0392c26d39b8eb8eb900/diff:/var/lib/docker/overlay2/b27b9cfdc5fb1343f1fdb3e2a4cbdf1d157481526861bb37b1d6699bd45fbd74/diff:/var/lib/docker/overlay2/bba98036bd0aa8318aa7e7a6678f0f26e82230a05da8b359192c995837cc6294/diff:/var/lib/docker/overlay2/d944ad242a218ed572c73d6718fe92f7f30795ebd2f5bdf920c00175d0e5f81a/diff:/var/lib/docker/overlay2/722e0ca46244a4efd2d172bba070c2249a33ac57bdfacdcba2ac92a3ca13466e/diff:/var/lib/docker/overlay2/ba9a9c0ea6017f8c8bb2d1e13f9d17af75564024dc403480ad80bc792216f1ce/diff", "MergedDir": "/var/lib/docker/overlay2/40a77a2182f5ef1d959b26e11944ab2846995ea863f968422c21bf8fa7684189/merged", "UpperDir": "/var/lib/docker/overlay2/40a77a2182f5ef1d959b26e11944ab2846995ea863f968422c21bf8fa7684189/diff", "WorkDir": "/var/lib/docker/overlay2/40a77a2182f5ef1d959b26e11944ab2846995ea863f968422c21bf8fa7684189/work" }, "Name": "overlay2" }, "Mounts": [ { "Type": "volume", "Name": "1891385a520fb48c16cffcd9efe3b2b6f4ea1ba2ecbaa9b9cf196e4e9f3ea3b5", "Source": "/var/lib/docker/volumes/1891385a520fb48c16cffcd9efe3b2b6f4ea1ba2ecbaa9b9cf196e4e9f3ea3b5/_data", "Destination": "/var/lib/mysql", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ], "Config": { "Hostname": "361d4b9f85a7", "Domainname": "", "User": "", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "ExposedPorts": { "3306/tcp": {}, "33060/tcp": {} }, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "GOSU_VERSION=1.7", "MYSQL_MAJOR=5.7", "MYSQL_VERSION=5.7.27-1debian9" ], "Cmd": [ "mysqld" ], "Image": "mysql:5.7", "Volumes": { "/var/lib/mysql": {} }, "WorkingDir": "", "Entrypoint": [ "docker-entrypoint.sh" ], "OnBuild": null, "Labels": {} }, "NetworkSettings": { "Bridge": "", "SandboxID": "0e042880d0c8d0ec618a05ad0daaa563c422cc8d38cc0593c5ebd15673d036e5", "HairpinMode": false, "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "Ports": {}, "SandboxKey": "/var/run/docker/netns/0e042880d0c8", "SecondaryIPAddresses": null, "SecondaryIPv6Addresses": null, "EndpointID": "", "Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "", "IPPrefixLen": 0, "IPv6Gateway": "", "MacAddress": "", "Networks": { "bridge": { "IPAMConfig": null, "Links": null, "Aliases": null, "NetworkID": "5d0a1b0ef4a287323a8a0eb3eb46c842783c6daaa3602ec839ce868707352164", "EndpointID": "", "Gateway": "", "IPAddress": "", "IPPrefixLen": 0, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "", "DriverOpts": null } } } } ]
[root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5c76e5a5901b centos:7 "/bin/bash" 47 seconds ago Exited (0) 36 seconds ago great_dhawan 17e4c208a035 centos:7 "/bin/bash" 10 minutes ago Exited (0) 2 seconds ago reverent_gates 361d4b9f85a7 mysql:5.7 "docker-entrypoint.s…" 16 minutes ago Exited (1) 5 minutes ago competent_varahamihira [root@localhost ~]# docker start 5c76e5a5901b 5c76e5a5901b [root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5c76e5a5901b centos:7 "/bin/bash" About a minute ago Up 2 seconds great_dhawan 17e4c208a035 centos:7 "/bin/bash" 11 minutes ago Exited (0) 18 seconds ago reverent_gates 361d4b9f85a7 mysql:5.7 "docker-entrypoint.s…" 16 minutes ago Exited (1) 5 minutes ago competent_varahamihira [root@localhost ~]#
[root@localhost ~]# docker container exec -it 5c76e5a5901b bash#进入容器伪终端 [root@5c76e5a5901b /]# [root@localhost ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 4733136e5c3c 17 hours ago 126MB mysql 5.7 e1e1680ac726 18 hours ago 373MB centos 7 9f38484d220f 5 months ago 202MB [root@localhost ~]# docker run -d -p 88:80 -e ABC=123 --name=nginx -h nginx_web 4733136e5c3c #-p发布88端口给宿主机 映射到容器80端口 6e9fd6b3c1364665978709c9cc86e88ecf75d90e3e1eeee622cd9a34b743cef0 [root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6e9fd6b3c136 4733136e5c3c "nginx -g 'daemon of…" 17 seconds ago Up 15 seconds 0.0.0.0:88->80/tcp nginx 5c76e5a5901b centos:7 "/bin/bash" 20 minutes ago Up 19 minutes great_dhawan 17e4c208a035 centos:7 "/bin/bash" 30 minutes ago Exited (0) 19 minutes ago reverent_gates 361d4b9f85a7 mysql:5.7 "docker-entrypoint.s…" 36 minutes ago Exited (1) 24 minutes ago competent_varahamihira [root@localhost ~]# docker container exec -it 6e9fd6b3c136 bash root@nginx_web:/# [root@localhost ~]# netstat -anptu | grep 88 tcp6 0 0 :::88 :::* LISTEN 22538/docker-proxy [root@localhost ~]# [root@localhost ~]# docker logs 6e9fd6b3c136 #查看日志 192.168.1.3 - - [15/Aug/2019:00:20:23 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0" "-" 2019/08/15 00:20:24 [error] 7#7: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.1.3, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.1.11:88" 192.168.1.3 - - [15/Aug/2019:00:20:24 +0000] "GET /favicon.ico HTTP/1.1" 404 153 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0" "-" [root@localhost ~]# 两种方法都一样 [root@localhost ~]# tail -f /var/lib/docker/containers/6e9fd6b3c1364665978709c9cc86e88ecf75d90e3e1eeee622cd9a34b743cef0/6e9fd6b3c1364665978709c9cc86e88ecf75d90e3e1eeee622cd9a34b743cef0-json.log {"log":"192.168.1.3 - - [15/Aug/2019:00:20:23 +0000] \"GET / HTTP/1.1\" 200 612 \"-\" \"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0\" \"-\"\n","stream":"stdout","time":"2019-08-15T00:20:23.843160689Z"} {"log":"2019/08/15 00:20:24 [error] 7#7: *1 open() \"/usr/share/nginx/html/favicon.ico\" failed (2: No such file or directory), client: 192.168.1.3, server: localhost, request: \"GET /favicon.ico HTTP/1.1\", host: \"192.168.1.11:88\"\n","stream":"stderr","time":"2019-08-15T00:20:24.098213424Z"} {"log":"192.168.1.3 - - [15/Aug/2019:00:20:24 +0000] \"GET /favicon.ico HTTP/1.1\" 404 153 \"-\" \"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0\" \"-\"\n","stream":"stdout","time":"2019-08-15T00:20:24.099095963Z"} #####################################20190815 [root@localhost ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 4733136e5c3c 42 hours ago 126MB mysql 5.7 e1e1680ac726 43 hours ago 373MB centos 7 9f38484d220f 5 months ago 202MB [root@localhost ~]# docker container run -d -m 1G 4733136e5c3c #限制容器内存一个G b5682943f5c5e826ebf92da81672fbb0cdcc6a46d2d5d7e07048f6aede4de2c3 [root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b5682943f5c5 4733136e5c3c "nginx -g 'daemon of…" 23 seconds ago Up 21 seconds 80/tcp wizardly_volhard 6e9fd6b3c136 4733136e5c3c "nginx -g 'daemon of…" 25 hours ago Exited (0) 25 hours ago nginx 5c76e5a5901b centos:7 "/bin/bash" 26 hours ago Exited (137) 25 hours ago great_dhawan 17e4c208a035 centos:7 "/bin/bash" 26 hours ago Exited (0) 26 hours ago reverent_gates 361d4b9f85a7 mysql:5.7 "docker-entrypoint.s…" 26 hours ago Exited (1) 26 hours ago competent_varahamihira [root@localhost ~]# docker stats #查看容器状态 CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS b5682943f5c5 wizardly_volhard 0.00% 1.391MiB / 1GiB 0.14% 1.31kB / 0B 16.4MB / 0B 2 ##################### #查看运行的容器docker container ls [root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b5682943f5c5 4733136e5c3c "nginx -g 'daemon of…" 28 minutes ago Up 28 minutes 80/tcp wizardly_volhard 6e9fd6b3c136 4733136e5c3c "nginx -g 'daemon of…" 26 hours ago Exited (0) 25 hours ago nginx 5c76e5a5901b centos:7 "/bin/bash" 26 hours ago Exited (137) 25 hours ago great_dhawan 17e4c208a035 centos:7 "/bin/bash" 26 hours ago Exited (0) 26 hours ago reverent_gates 361d4b9f85a7 mysql:5.7 "docker-entrypoint.s…" 26 hours ago Exited (1) 26 hours ago competent_varahamihira [root@localhost ~]# docker container start 6e9fd6b3c136 6e9fd6b3c136 [root@localhost ~]# docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b5682943f5c5 4733136e5c3c "nginx -g 'daemon of…" 28 minutes ago Up 28 minutes 80/tcp wizardly_volhard 6e9fd6b3c136 4733136e5c3c "nginx -g 'daemon of…" 26 hours ago Up 5 seconds 0.0.0.0:88->80/tcp nginx [root@localhost ~]# docker container ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b5682943f5c5 4733136e5c3c "nginx -g 'daemon of…" 29 minutes ago Up 29 minutes 80/tcp wizardly_volhard 6e9fd6b3c136 4733136e5c3c "nginx -g 'daemon of…" 26 hours ago Up 26 seconds 0.0.0.0:88->80/tcp nginx 5c76e5a5901b centos:7 "/bin/bash" 26 hours ago Exited (137) 26 hours ago great_dhawan 17e4c208a035 centos:7 "/bin/bash" 26 hours ago Exited (0) 26 hours ago reverent_gates 361d4b9f85a7 mysql:5.7 "docker-entrypoint.s…" 26 hours ago Exited (1) 26 hours ago competent_varahamihira [root@localhost ~]# ###################### [root@localhost ~]# docker container inspect b5682943f5c5 #查看容器详细信息 [root@localhost ~]# docker container exec b5682943f5c5 ls #在容器中执行命令 bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var [root@localhost ~]# docker container commit b5682943f5c5 nginx:v1 #将容器提交一个新的镜像 sha256:280caf95b0cdec90a4f5783378d973744b81f0ad67ad8c8ccea6c8f4261b1844 [root@localhost ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE nginx v1 280caf95b0cd 9 seconds ago 126MB nginx latest 4733136e5c3c 43 hours ago 126MB mysql 5.7 e1e1680ac726 44 hours ago 373MB centos 7 9f38484d220f 5 months ago 202MB [root@localhost ~]# [root@localhost ~]# docker container cp centos7.tar b5682943f5c5:/ #拷贝宿主机的文件到容器中 [root@localhost ~]# docker container exec b5682943f5c5 ls bin boot centos7.tar dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var [root@localhost ~]# [root@localhost ~]# docker container top b5682943f5c5 UID PID PPID C STIME TTY TIME CMD root 19296 19277 0 09:30 ? 00:00:00 nginx: master process nginx -g daemon off; 101 19335 19296 0 09:30 ? 00:00:00 nginx: worker process [root@localhost ~]#