docker学习笔记
-官方文档
官方文档
离线安装docker
搜索docker镜像
[root@localhost ~]# docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 15910 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 2098 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 820 [OK]
jc21/nginx-proxy-manager Docker container for managing Nginx proxy ho… 286
linuxserver/nginx An Nginx container, brought to you by LinuxS… 160
tiangolo/nginx-rtmp Docker image with Nginx using the nginx-rtmp… 147 [OK]
jlesage/nginx-proxy-manager Docker container for Nginx Proxy Manager 144 [OK]
alfg/nginx-rtmp NGINX, nginx-rtmp-module and FFmpeg from sou… 110 [OK]
nginxdemos/hello NGINX webserver that serves a simple page co… 79 [OK]
privatebin/nginx-fpm-alpine PrivateBin running on an Nginx, php-fpm & Al… 61 [OK]
nginx/nginx-ingress NGINX and NGINX Plus Ingress Controllers fo… 57
nginxinc/nginx-unprivileged Unprivileged NGINX Dockerfiles 54
nginxproxy/nginx-proxy Automated Nginx reverse proxy for docker con… 28
staticfloat/nginx-certbot Opinionated setup for automatic TLS certs lo… 25 [OK]
nginx/nginx-prometheus-exporter NGINX Prometheus Exporter for NGINX and NGIN… 22
schmunk42/nginx-redirect A very simple container to redirect HTTP tra… 19 [OK]
centos/nginx-112-centos7 Platform for running nginx 1.12 or building … 16
centos/nginx-18-centos7 Platform for running nginx 1.8 or building n… 13
flashspys/nginx-static Super Lightweight Nginx Image 11 [OK]
webdevops/nginx Nginx container 9 [OK]
mailu/nginx Mailu nginx frontend 9 [OK]
sophos/nginx-vts-exporter Simple server that scrapes Nginx vts stats a… 7 [OK]
ansibleplaybookbundle/nginx-apb An APB to deploy NGINX 3 [OK]
arnau/nginx-gate Docker image with Nginx with Lua enabled on … 1 [OK]
wodby/nginx Generic nginx 1 [OK]
[root@localhost ~]#
下载docker镜像
docker pull centos:centos7.9.2009
[root@localhost ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
e5ae68f74026: Pull complete
21e0df283cd6: Pull complete
ed835de16acd: Pull complete
881ff011f1c9: Pull complete
77700c52c969: Pull complete
44be98c0fab6: Pull complete
Digest: sha256:9522864dd661dcadfd9958f9e0de192a1fdda2c162a35668ab6ac42b465f0603
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
列出所有本地docker镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f652ca386ed1 21 hours ago 141MB
ferry_web latest c3a3aaaa7715 22 hours ago 160MB
ferry latest 263660e16b59 2 days ago 146MB
alpine latest c059bfaa849c 8 days ago 5.59MB
redis 6 40c68ed3a4d2 2 weeks ago 113MB
mysql 5.7 8b43c6af2ad0 2 weeks ago 448MB
node 14.18-alpine f7229193551e 2 weeks ago 118MB
golang 1.15 40349a2425ef 3 months ago 840MB
nginx 1.18.0 c2c45d506085 7 months ago 133MB
registry.cn-beijing.aliyuncs.com/lanyulei/ferry v1.0.0-2 286bf772af1b 12 months ago 2.15GB
node 14.15.0 b90fa0d7cbd1 13 months ago 943MB
[root@localhost ~]#
使用镜像centos:7以交互模式启动一个容器,在容器内执行/bin/bash命令。
[root@localhost centos]# docker run --privileged=true -d -it centos:7 /bin/bash
列出所有正在运行的docker容器
[root@localhost ferry]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c48b8851b9ab ferry_web:latest "/entrypoint.sh" 21 hours ago Up About an hour 80/tcp, 0.0.0.0:8001->8001/tcp ferry_web
746ad9e65517 ferry:latest "/opt/workflow/ferry…" 21 hours ago Up About an hour 0.0.0.0:8002->8002/tcp ferry_backend
62df063a474c mysql:5.7 "docker-entrypoint.s…" 21 hours ago Up About an hour 3306/tcp, 33060/tcp ferry_mysql
6935b5c6f370 redis:6 "docker-entrypoint.s…" 21 hours ago Up About an hour 6379/tcp ferry_redis
[root@localhost ferry]#
停止正在运行的容器
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7be73502bc36 nginx "/docker-entrypoint.…" 11 minutes ago Up About a minute 0.0.0.0:8080->80/tcp nginx01
c48b8851b9ab ferry_web:latest "/entrypoint.sh" 22 hours ago Up 2 hours 80/tcp, 0.0.0.0:8001->8001/tcp ferry_web
746ad9e65517 ferry:latest "/opt/workflow/ferry…" 22 hours ago Up 2 hours 0.0.0.0:8002->8002/tcp ferry_backend
62df063a474c mysql:5.7 "docker-entrypoint.s…" 22 hours ago Up 2 hours 3306/tcp, 33060/tcp ferry_mysql
6935b5c6f370 redis:6 "docker-entrypoint.s…" 22 hours ago Up 2 hours 6379/tcp ferry_redis
[root@localhost ~]# docker stop nginx01
nginx01
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7be73502bc36 nginx "/docker-entrypoint.…" 11 minutes ago Exited (0) 4 seconds ago nginx01
c48b8851b9ab ferry_web:latest "/entrypoint.sh" 22 hours ago Up 2 hours 80/tcp, 0.0.0.0:8001->8001/tcp ferry_web
746ad9e65517 ferry:latest "/opt/workflow/ferry…" 22 hours ago Up 2 hours 0.0.0.0:8002->8002/tcp ferry_backend
62df063a474c mysql:5.7 "docker-entrypoint.s…" 22 hours ago Up 2 hours 3306/tcp, 33060/tcp ferry_mysql
6935b5c6f370 redis:6 "docker-entrypoint.s…" 22 hours ago Up 2 hours 6379/tcp ferry_redis
启动docker容器
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7be73502bc36 nginx "/docker-entrypoint.…" 3 days ago Exited (0) 3 days ago nginx01
c48b8851b9ab ferry_web:latest "/entrypoint.sh" 4 days ago Up 24 seconds 80/tcp, 0.0.0.0:8001->8001/tcp ferry_web
746ad9e65517 ferry:latest "/opt/workflow/ferry…" 4 days ago Up 17 seconds 0.0.0.0:8002->8002/tcp ferry_backend
62df063a474c mysql:5.7 "docker-entrypoint.s…" 4 days ago Up 24 seconds 3306/tcp, 33060/tcp ferry_mysql
6935b5c6f370 redis:6 "docker-entrypoint.s…" 4 days ago Up 24 seconds 6379/tcp ferry_redis
[root@localhost ~]# docker start 7be73502bc36
7be73502bc36
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7be73502bc36 nginx "/docker-entrypoint.…" 3 days ago Up 3 seconds 0.0.0.0:8080->80/tcp nginx01
c48b8851b9ab ferry_web:latest "/entrypoint.sh" 4 days ago Up About a minute 80/tcp, 0.0.0.0:8001->8001/tcp ferry_web
746ad9e65517 ferry:latest "/opt/workflow/ferry…" 4 days ago Up 58 seconds 0.0.0.0:8002->8002/tcp ferry_backend
62df063a474c mysql:5.7 "docker-entrypoint.s…" 4 days ago Up About a minute 3306/tcp, 33060/tcp ferry_mysql
6935b5c6f370 redis:6 "docker-entrypoint.s…" 4 days ago Up About a minute 6379/tcp ferry_redis
[root@localhost ~]#
以root用户交互模式进入正在运行的容器临时退出正在运行的容器 Ctrl + p + q
[root@localhost ~]# docker exec -itu root 7be73502bc36 /bin/bash
root@7be73502bc36:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@7be73502bc36:/# cd /etc/nginx/
root@7be73502bc36:/etc/nginx# ls
conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params
root@7be73502bc36:/etc/nginx#
后台运行docker镜像docker端口映射 docker run --privileged=true -p [本地端口:镜像端口]
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a7880a05d88a nginx:latest "/docker-entrypoint.…" 13 seconds ago Up 9 seconds 0.0.0.0:8080->80/tcp nginx01
c48b8851b9ab ferry_web:latest "/entrypoint.sh" 6 days ago Up 5 minutes 80/tcp, 0.0.0.0:8001->8001/tcp ferry_web
746ad9e65517 ferry:latest "/opt/workflow/ferry…" 6 days ago Up 5 minutes 0.0.0.0:8002->8002/tcp ferry_backend
62df063a474c 8b43c6af2ad0 "docker-entrypoint.s…" 6 days ago Up 5 minutes 3306/tcp, 33060/tcp ferry_mysql
6935b5c6f370 redis:6 "docker-entrypoint.s…" 6 days ago Up 5 minutes 6379/tcp ferry_redis
[root@localhost ~]# docker run --privileged=true -d --name nginx01 -p 8080:80 nginx:latest
a7880a05d88a9d8fb1cf22bf50ee4f86ea12936e86d0bc66bf4581d0e9e0a670
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a7880a05d88a nginx:latest "/docker-entrypoint.…" 13 seconds ago Up 9 seconds 0.0.0.0:8080->80/tcp nginx01
c48b8851b9ab ferry_web:latest "/entrypoint.sh" 6 days ago Up 5 minutes 80/tcp, 0.0.0.0:8001->8001/tcp ferry_web
746ad9e65517 ferry:latest "/opt/workflow/ferry…" 6 days ago Up 5 minutes 0.0.0.0:8002->8002/tcp ferry_backend
62df063a474c 8b43c6af2ad0 "docker-entrypoint.s…" 6 days ago Up 5 minutes 3306/tcp, 33060/tcp ferry_mysql
6935b5c6f370 redis:6 "docker-entrypoint.s…" 6 days ago Up 5 minutes 6379/tcp ferry_redis
[root@localhost ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1169/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1258/master
tcp6 0 0 :::8001 :::* LISTEN 2029/docker-proxy
tcp6 0 0 :::8002 :::* LISTEN 2639/docker-proxy
tcp6 0 0 :::8080 :::* LISTEN 2855/docker-proxy
tcp6 0 0 :::22 :::* LISTEN 1169/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1258/master
[root@localhost ~]#
查看docker CPU内存状态
[root@localhost ~]# docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
7be73502bc36 nginx01 0.00% 3.062MiB / 1.934GiB 0.15% 1.1kB / 0B 23.6MB / 0B 5
c48b8851b9ab ferry_web 0.00% 84.34MiB / 1.934GiB 4.26% 908B / 0B 80.2MB / 8.19kB 6
746ad9e65517 ferry_backend 0.22% 48.07MiB / 1.934GiB 2.43% 563kB / 1.08MB 139kB / 43kB 10
62df063a474c ferry_mysql 0.17% 193.4MiB / 1.934GiB 9.76% 1.93kB / 1.07kB 123MB / 25.4MB 28
6935b5c6f370 ferry_redis 0.42% 6.656MiB / 1.934GiB 0.34% 1.08MB / 561kB 39.6MB / 0B 5
删除容器
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7be73502bc36 nginx "/docker-entrypoint.…" 3 days ago Up About an hour 0.0.0.0:8080->80/tcp nginx01
c48b8851b9ab ferry_web:latest "/entrypoint.sh" 4 days ago Up About an hour 80/tcp, 0.0.0.0:8001->8001/tcp ferry_web
746ad9e65517 ferry:latest "/opt/workflow/ferry…" 4 days ago Up About an hour 0.0.0.0:8002->8002/tcp ferry_backend
62df063a474c mysql:5.7 "docker-entrypoint.s…" 4 days ago Up About an hour 3306/tcp, 33060/tcp ferry_mysql
6935b5c6f370 redis:6 "docker-entrypoint.s…" 4 days ago Up About an hour 6379/tcp ferry_redis
[root@localhost ~]# docker stop 7be73502bc36
7be73502bc36
[root@localhost ~]# docker rm 7be73502bc36
7be73502bc36
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c48b8851b9ab ferry_web:latest "/entrypoint.sh" 4 days ago Up About an hour 80/tcp, 0.0.0.0:8001->8001/tcp ferry_web
746ad9e65517 ferry:latest "/opt/workflow/ferry…" 4 days ago Up About an hour 0.0.0.0:8002->8002/tcp ferry_backend
62df063a474c mysql:5.7 "docker-entrypoint.s…" 4 days ago Up About an hour 3306/tcp, 33060/tcp ferry_mysql
6935b5c6f370 redis:6 "docker-entrypoint.s…" 4 days ago Up About an hour 6379/tcp ferry_redis
[root@localhost ~]#
向docker容器拷贝文件
[root@localhost /]# docker cp /media/ a3ce9ee3bec4:/opt
[root@localhost /]# docker exec -it a3ce9ee3bec4 /bin/bash
root@a3ce9ee3bec4:/# cd /opt/
root@a3ce9ee3bec4:/opt# ls
media root
[root@localhost /]#
从docker容器拷贝文件
[root@localhost /]# docker cp a3ce9ee3bec4:/opt /mnt
[root@localhost /]# ll /mnt/opt/media/
total 4
drwxr-xr-x. 2 root root 6 Dec 7 10:37 1.sh
-rw-r--r--. 1 root root 2 Dec 7 10:37 2.sh
[root@localhost /]#
将修改过的容器快照为新的镜像
打包出来的新镜像不带挂载设置
[root@localhost /]# docker commit -a="NoYoWiFi" -m="add /opt/1.sh" a3ce9ee3bec4 nginx02:1.0
sha256:49e81b1d231f8d7eca7e5ead579623d8864541718c31b45b6507112101bdc67f
[root@localhost /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx02 1.0 49e81b1d231f 11 seconds ago 141MB
nginx latest f652ca386ed1 4 days ago 141MB
ferry_web latest c3a3aaaa7715 4 days ago 160MB
ferry latest 263660e16b59 6 days ago 146MB
alpine latest c059bfaa849c 12 days ago 5.59MB
redis 6 40c68ed3a4d2 2 weeks ago 113MB
mysql 5.7 8b43c6af2ad0 2 weeks ago 448MB
node 14.18-alpine f7229193551e 3 weeks ago 118MB
golang 1.15 40349a2425ef 4 months ago 840MB
nginx 1.18.0 c2c45d506085 8 months ago 133MB
registry.cn-beijing.aliyuncs.com/lanyulei/ferry v1.0.0-2 286bf772af1b 12 months ago 2.15GB
node 14.15.0 b90fa0d7cbd1 13 months ago 943MB
docker文件挂载
使用镜像 nginx02:1.0,以后台模式启动一个容器,将容器的 80 端口映射到主机的 8080 端口,主机的目录 /home/ceshi1 映射到容器的 /opt。
[root@localhost /]# docker run --privileged=true -d -p 8080:80 --name nginx02 -v /home/ceshi:/opt nginx02:1.0
34c0aa497ee722fcdbf70a6581c0647df4c469ce6a47ebd9d4501bd9545da70e
[root@localhost home]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
34c0aa497ee7 nginx02:1.0 "/docker-entrypoint.…" 21 minutes ago Up 21 minutes 0.0.0.0:8080->80/tcp nginx02
c48b8851b9ab ferry_web:latest "/entrypoint.sh" 4 days ago Up 7 hours 80/tcp, 0.0.0.0:8001->8001/tcp ferry_web
746ad9e65517 ferry:latest "/opt/workflow/ferry…" 4 days ago Up 7 hours 0.0.0.0:8002->8002/tcp ferry_backend
62df063a474c mysql:5.7 "docker-entrypoint.s…" 4 days ago Up 7 hours 3306/tcp, 33060/tcp ferry_mysql
6935b5c6f370 redis:6 "docker-entrypoint.s…" 4 days ago Up 7 hours 6379/tcp ferry_redis
[root@localhost home]# docker inspect 296dd28d30a3
"Mounts": [
{
"Type": "bind",
"Source": "/home/ceshi2",
"Destination": "/opt",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
启动mysql
[root@localhost ~]# docker run --privileged=true -d -p 13306:3306 -v /opt/mysql/etc/mysql/conf.d:/etc/mysql/conf.d -v /opt/mysql/var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
cd5572e2e0d67e9f16550baed02189177ddcfb8c0156dbff2ba1d92078967da3
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd5572e2e0d6 mysql:5.7 "docker-entrypoint.s…" 7 seconds ago Up 4 seconds 33060/tcp, 0.0.0.0:13306->3306/tcp mysql01
c48b8851b9ab ferry_web:latest "/entrypoint.sh" 6 days ago Up 4 hours 80/tcp, 0.0.0.0:8001->8001/tcp ferry_web
746ad9e65517 ferry:latest "/opt/workflow/ferry…" 6 days ago Up 4 hours 0.0.0.0:8002->8002/tcp ferry_backend
62df063a474c 8b43c6af2ad0 "docker-entrypoint.s…" 6 days ago Up 4 hours 3306/tcp, 33060/tcp ferry_mysql
6935b5c6f370 redis:6 "docker-entrypoint.s…" 6 days ago Up 4 hours 6379/tcp ferry_redis
[root@localhost ~]#
匿名挂载
[root@localhost mysql]# docker run --privileged=true -d -P --name nginx02 -v /etc/nginx nginx
4d17fa3b6f1bfba62d027e22a0e05ebe08bf5804a773a761d541f054469cd707
[root@localhost mysql]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd657e227302 nginx "/docker-entrypoint.…" 8 minutes ago Up 8 minutes 0.0.0.0:32769->80/tcp nginx03
4d17fa3b6f1b nginx "/docker-entrypoint.…" 9 minutes ago Up 9 minutes 0.0.0.0:32768->80/tcp nginx02
7bf439d30758 mysql:5.7 "docker-entrypoint.s…" 22 minutes ago Up 22 minutes 33060/tcp, 0.0.0.0:13306->3306/tcp mysql01
c48b8851b9ab ferry_web:latest "/entrypoint.sh" 6 days ago Up 4 hours 80/tcp, 0.0.0.0:8001->8001/tcp ferry_web
746ad9e65517 ferry:latest "/opt/workflow/ferry…" 6 days ago Up 4 hours 0.0.0.0:8002->8002/tcp ferry_backend
62df063a474c 8b43c6af2ad0 "docker-entrypoint.s…" 6 days ago Up 4 hours 3306/tcp, 33060/tcp ferry_mysql
6935b5c6f370 redis:6 "docker-entrypoint.s…" 6 days ago Up 4 hours 6379/tcp ferry_redis
[root@localhost mysql]# docker inspect 4d17fa3b6f1b | grep volume
"Type": "volume",
"Source": "/var/lib/docker/volumes/53ee8a3159a835548f8a63b177b670ac7ce10b8ed653cfdc769e26337475bc31/_data",
[root@localhost mysql]# docker volume inspect 53ee8a3159a835548f8a63b177b670ac7ce10b8ed653cfdc769e26337475bc31
[
{
"CreatedAt": "2021-12-09T14:55:32+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/53ee8a3159a835548f8a63b177b670ac7ce10b8ed653cfdc769e26337475bc31/_data",
"Name": "53ee8a3159a835548f8a63b177b670ac7ce10b8ed653cfdc769e26337475bc31",
"Options": null,
"Scope": "local"
}
]
[root@localhost mysql]# docker volume ls
DRIVER VOLUME NAME
local 3b6fab2c2fa2a1f7f47690d153d737bfff483d1096726089fecca8990ce7a1d1
local 6b01d3a377ac2111d5e5ae3da98da775fd1b9e61e04be4d1341f39f367f815d5
local 17ba1b4771db773df5b6619a9d4a41bcb8bae4a3d9a12474deb35a404c1fee07
local 53ee8a3159a835548f8a63b177b670ac7ce10b8ed653cfdc769e26337475bc31
local 96c46bc0b00529bbb98387406db5638367b90fccbf92e6660558473f57495caf
local nginx_latest-juming
[root@localhost mysql]#
具名挂载
[root@localhost mysql]# docker run --privileged=true -d -P --name nginx03 -v nginx_latest-juming:/etc/nginx nginx
cd657e227302bf3e095d610898221ba3d7dffebb8b4e89cc93d341b876dff94d
[root@localhost mysql]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd657e227302 nginx "/docker-entrypoint.…" 8 minutes ago Up 8 minutes 0.0.0.0:32769->80/tcp nginx03
4d17fa3b6f1b nginx "/docker-entrypoint.…" 9 minutes ago Up 9 minutes 0.0.0.0:32768->80/tcp nginx02
7bf439d30758 mysql:5.7 "docker-entrypoint.s…" 22 minutes ago Up 22 minutes 33060/tcp, 0.0.0.0:13306->3306/tcp mysql01
c48b8851b9ab ferry_web:latest "/entrypoint.sh" 6 days ago Up 4 hours 80/tcp, 0.0.0.0:8001->8001/tcp ferry_web
746ad9e65517 ferry:latest "/opt/workflow/ferry…" 6 days ago Up 4 hours 0.0.0.0:8002->8002/tcp ferry_backend
62df063a474c 8b43c6af2ad0 "docker-entrypoint.s…" 6 days ago Up 4 hours 3306/tcp, 33060/tcp ferry_mysql
6935b5c6f370 redis:6 "docker-entrypoint.s…" 6 days ago Up 4 hours 6379/tcp ferry_redis
[root@localhost mysql]# docker inspect cd657e227302 | grep volume
"Type": "volume",
"Source": "/var/lib/docker/volumes/nginx_latest-juming/_data",
[root@localhost mysql]# docker volume inspect nginx_latest-juming
[
{
"CreatedAt": "2021-12-09T14:57:10+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/nginx_latest-juming/_data",
"Name": "nginx_latest-juming",
"Options": null,
"Scope": "local"
}
]
[root@localhost mysql]# docker volume ls
DRIVER VOLUME NAME
local 3b6fab2c2fa2a1f7f47690d153d737bfff483d1096726089fecca8990ce7a1d1
local 6b01d3a377ac2111d5e5ae3da98da775fd1b9e61e04be4d1341f39f367f815d5
local 17ba1b4771db773df5b6619a9d4a41bcb8bae4a3d9a12474deb35a404c1fee07
local 53ee8a3159a835548f8a63b177b670ac7ce10b8ed653cfdc769e26337475bc31
local 96c46bc0b00529bbb98387406db5638367b90fccbf92e6660558473f57495caf
local nginx_latest-juming
[root@localhost mysql]#
只读挂载卷卷挂载成只读的话,只能通过宿主机修改文件,容器无法修改文件
[root@localhost mysql]# docker run --privileged=true -d -P --name nginx03 -v nginx_latest-juming:/etc/nginx:ro nginx
读写挂载卷
[root@localhost mysql]# docker run --privileged=true -d -P --name nginx03 -v nginx_latest-juming:/etc/nginx:rw nginx
构建自己的docker镜像docker client 会默认把Dockerfile同级所有文件发给docker Deamon中,所以建议将Dockerfile放到空目录
[root@localhost centos]# pwd
/opt/centos
[root@localhost centos]# ll
total 4
-rw-r--r--. 1 root root 88 Dec 9 17:27 Dockerfile
[root@localhost centos]# cat Dockerfile
FROM centos:7
VOLUME [ "volume01","volume02" ]
CMD echo "------end------"
CMD /bin/bash
[root@localhost centos]# docker build -f ./Dockerfile -t centos_v20211209:7.9.2009 .
Sending build context to Docker daemon 2.048kB
Step 1/4 : FROM centos:7
---> eeb6ee3f44bd
Step 2/4 : VOLUME [ "volume01","volume02" ]
---> Running in a5b63e1a31a1
Removing intermediate container a5b63e1a31a1
---> d295b418541d
Step 3/4 : CMD echo "------end------"
---> Running in 00afaad616b8
Removing intermediate container 00afaad616b8
---> 7bba9540ba27
Step 4/4 : CMD /bin/bash
---> Running in 7ec15a59e3f1
Removing intermediate container 7ec15a59e3f1
---> b861047cad71
Successfully built b861047cad71
Successfully tagged centos_v20211209:7.9.2009
[root@localhost centos]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos_v20211209 7.9.2009 b861047cad71 6 seconds ago 204MB
mysql 5.7 738e7101490b 6 days ago 448MB
nginx latest f652ca386ed1 6 days ago 141MB
alpine latest c059bfaa849c 2 weeks ago 5.59MB
redis 6 40c68ed3a4d2 3 weeks ago 113MB
node 14.18-alpine f7229193551e 3 weeks ago 118MB
centos 7 eeb6ee3f44bd 2 months ago 204MB
golang 1.15 40349a2425ef 4 months ago 840MB
nginx 1.18.0 c2c45d506085 8 months ago 133MB
node 14.15.0 b90fa0d7cbd1 13 months ago 943MB
[root@localhost centos]#
mysql数据同步,采用docker的--volume-form技术
[root@localhost ~]# docker run --privileged=true -d -p 13306:3306 -v /opt/mysql/etc/mysql/conf.d:/etc/mysql/conf.d -v /opt/mysql/var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
[root@localhost ~]# docker run --privileged=true -d -p 23306:3306 --volumes-from mysql01 -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 mysql:5.7
4ece1ca838bfb10a6ce7ca50882241f268eb6884408b200ddc9fdce5adbce1e0
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4ece1ca838bf mysql:5.7 "docker-entrypoint.s…" 8 seconds ago Up 7 seconds 33060/tcp, 0.0.0.0:23306->3306/tcp mysql02
8a0ec05989ff mysql:5.7 "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 33060/tcp, 0.0.0.0:13306->3306/tcp mysql01
[root@localhost ~]#
dockerfile说明FROM: 基础镜像。一切从这里开始构建 centos
MAINTAINER: 镜像是谁写的。姓名 + 邮箱
RUN: docker构建时需要执行的命令
ADD: 复制指令,从上下文目录中复制文件或者目录到容器里指定路径。
- ADD 的优点: 在执行 <源文件> 为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到 <目标路径>。
- ADD 的缺点: 在不解压的前提下,无法复制 tar 压缩文件。会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。具体是否使用,可以根据是否需要自动解压来决定。
WORKDIR: 指定工作目录。用 WORKDIR 指定的工作目录,会在构建镜像的每一层中都存在。(WORKDIR 指定的工作目录,必须是提前创建好的)。
docker build 构建镜像过程中的,每一个 RUN 命令都是新建的一层。只有通过 WORKDIR 创建的目录才会一直存在。
VOLUME: 定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷。
作用:
- 避免重要的数据,因容器重启而丢失,这是非常致命的。
- 避免容器不断变大。
EXPOSE: 仅仅只是声明端口。
作用:
- 帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射。
- 在运行时使用随机端口映射时,也就是 docker run --privileged=true -P 时,会自动随机映射 EXPOSE 的端口。
CMD: 指定这个容器启动的时候运行的命令
- CMD 在docker run --privileged=true 时运行。
- RUN 是在 docker build。
- 只有最后一个剩下可被代替
ENTRYPOINT: 指定这个容器启动的时候运行的命令
- 如果运行 docker run --privileged=true 时使用了 --entrypoint 选项,将覆盖 CMD 指令指定的程序。
- 优点:在执行 docker run --privileged=true 的时候可以指定 ENTRYPOINT 运行所需的参数。
- 注意:如果 Dockerfile 中如果存在多个 ENTRYPOINT 指令,仅最后一个生效。
ONBUILD: 用于延迟构建命令的执行。
假设镜像为 test-build,当有新的 Dockerfile 使用了之前构建的镜像 FROM test-build ,这时执行新镜像的 Dockerfile 构建时候,会执行 test-build 的 Dockerfile 里的 ONBUILD 指定的命令。
COPY: 复制指令,从上下文目录中复制文件或者目录到容器里指定路径。
COPY [--chown=<user>:<group>] <源路径1>... <目标路径>
COPY [--chown=<user>:<group>] ["<源路径1>",... "<目标路径>"]
说明:
- [--chown=:]:可选参数,用户改变复制到容器内文件的拥有者和属组。
- <源路径>:源文件或者源目录,这里可以是通配符表达式,其通配符规则要满足 Go 的 filepath.Match 规则。例如:
- <目标路径>:容器内的指定路径,该路径不用事先建好,路径不存在的话,会自动创建。
ENV: 构建的时候设置环境变量
如设置 NODE_VERSION 7.2.0 , 在后续的指令中可以通过 $NODE_VERSION 引用
构建自己的docker镜像
[root@localhost centos]# pwd
/opt/centos
[root@localhost centos]# ll
total 8
-rw-r--r--. 1 root root 602 Dec 22 10:12 CentOS-Media.repo
-rw-r--r--. 1 root root 396 Dec 22 10:12 Dockerfile
[root@localhost centos]# cat Dockerfile
FROM centos:centos7.9.2009
MAINTAINER NoYoWiFi<1284524409@qq.com>
RUN mkdir -p /tmp/bak && \
mv -vf /etc/yum.repos.d/* /tmp/bak && \
mv -vf /tmp/bak /etc/yum.repos.d/
ADD CentOS-Media.repo /etc/yum.repos.d/CentOS-Media.repo
RUN yum -y install vim net-tools
EXPOSE 80
CMD echo "------end------"
CMD /bin/bash
# VOLUME [ "volume01","volume02" ]
# CMD echo "------end------"
# CMD /bin/bash
[root@localhost centos]# cat CentOS-Media.repo
# CentOS-Media.repo
#
# This repo can be used with mounted DVD media, verify the mount point for
# CentOS-7. You can use this repo and yum to install items directly off the
# DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
# yum --enablerepo=c7-media [command]
#
# or for ONLY the media repo, do this:
#
# yum --disablerepo=\* --enablerepo=c7-media [command]
[c7-media]
name=CentOS-$releasever - Media
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@localhost centos]# docker build --force-rm -f Dockerfile -t centos_20211220:0.1 .
Sending build context to Docker daemon 3.584kB
Step 1/8 : FROM centos:centos7.9.2009
---> eeb6ee3f44bd
Step 2/8 : MAINTAINER NoYoWiFi\<1284524409@qq.com>
---> Using cache
---> 24c12d237892
Step 3/8 : RUN mkdir -p /tmp/bak && mv -vf /etc/yum.repos.d/* /tmp/bak && mv -vf /tmp/bak /etc/yum.repos.d/
---> Using cache
---> fa89e52b9bb3
Step 4/8 : ADD CentOS-Media.repo /etc/yum.repos.d/CentOS-Media.repo
---> Using cache
---> 23b51f99c52f
Step 5/8 : RUN yum -y install vim net-tools
---> Running in 886e4f056689
Loaded plugins: fastestmirror, ovl
Removing intermediate container 886e4f056689
---> 9889602d26aa
Step 6/8 : EXPOSE 80
---> Running in 329adfceae36
Removing intermediate container 329adfceae36
---> 436f321f74cd
Step 7/8 : CMD echo "------end------"
---> Running in 8932c3558846
Removing intermediate container 8932c3558846
---> 1019234dc9ea
Step 8/8 : CMD /bin/bash
---> Running in e8fc61fa097b
Removing intermediate container e8fc61fa097b
---> d220faaac874
Successfully built d220faaac874
Successfully tagged centos_20211220:0.1
[root@localhost centos]# docker images;
REPOSITORY TAG IMAGE ID CREATED SIZE
centos_20211220 0.1 d220faaac874 4 seconds ago 323MB
mysql 5.7 738e7101490b 2 weeks ago 448MB
nginx latest f652ca386ed1 2 weeks ago 141MB
alpine latest c059bfaa849c 3 weeks ago 5.59MB
redis 6 40c68ed3a4d2 4 weeks ago 113MB
node 14.18-alpine f7229193551e 5 weeks ago 118MB
centos centos7.9.2009 eeb6ee3f44bd 3 months ago 204MB
golang 1.15 40349a2425ef 4 months ago 840MB
nginx 1.18.0 c2c45d506085 8 months ago 133MB
node 14.15.0 b90fa0d7cbd1 14 months ago 943MB
[root@localhost centos]# docker rmi 062391f60005 a76830e3f911 5d8574733b47 3bb6c0968d26
构建自己的Tomcat
[root@localhost centos]# pwd
/opt/centos
[root@localhost centos]# ll
total 154680
-rw-r--r--. 1 root root 11582777 Dec 22 15:58 apache-tomcat-9.0.56.tar.gz
-rw-r--r--. 1 root root 602 Dec 22 10:12 CentOS-Media.repo
-rw-r--r--. 1 root root 785 Dec 22 16:53 Dockerfile
-rw-r--r--. 1 root root 146799982 Dec 22 15:58 jdk-8u311-linux-x64.tar.gz
[root@localhost centos]# cat CentOS-Media.repo
# CentOS-Media.repo
#
# This repo can be used with mounted DVD media, verify the mount point for
# CentOS-7. You can use this repo and yum to install items directly off the
# DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
# yum --enablerepo=c7-media [command]
#
# or for ONLY the media repo, do this:
#
# yum --disablerepo=\* --enablerepo=c7-media [command]
[c7-media]
name=CentOS-$releasever - Media
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@localhost centos]# cat Dockerfile
FROM centos:centos7.9.2009
MAINTAINER NoYoWiFi\<1284524409@qq.com>
RUN mkdir -p /tmp/bak && \
mv -vf /etc/yum.repos.d/* /tmp/bak && \
mv -vf /tmp/bak /etc/yum.repos.d/
ADD CentOS-Media.repo /etc/yum.repos.d/CentOS-Media.repo
RUN yum -y install vim net-tools
ADD apache-tomcat-9.0.56.tar.gz /usr/local/
ADD jdk-8u311-linux-x64.tar.gz /usr/local/
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_311
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.56
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.56
ENV PATH \$PATH:$JAVA_HOME/bin:\$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.56/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.56/bin/logs/catalina.out
[root@localhost centos]#
[root@localhost centos]# docker build -t diytomcat .
Sending build context to Docker daemon 158.4MB
Step 1/16 : FROM centos:centos7.9.2009
---> eeb6ee3f44bd
Step 2/16 : MAINTAINER NoYoWiFi\<1284524409@qq.com>
---> Running in 09a205b58258
Removing intermediate container 09a205b58258
---> be9b26ed6537
Step 3/16 : RUN mkdir -p /tmp/bak && mv -vf /etc/yum.repos.d/* /tmp/bak && mv -vf /tmp/bak /etc/yum.repos.d/
---> Running in f394979ec2c9
'/etc/yum.repos.d/CentOS-Base.repo' -> '/tmp/bak/CentOS-Base.repo'
'/etc/yum.repos.d/CentOS-CR.repo' -> '/tmp/bak/CentOS-CR.repo'
'/etc/yum.repos.d/CentOS-Debuginfo.repo' -> '/tmp/bak/CentOS-Debuginfo.repo'
'/etc/yum.repos.d/CentOS-Media.repo' -> '/tmp/bak/CentOS-Media.repo'
'/etc/yum.repos.d/CentOS-Sources.repo' -> '/tmp/bak/CentOS-Sources.repo'
'/etc/yum.repos.d/CentOS-Vault.repo' -> '/tmp/bak/CentOS-Vault.repo'
'/etc/yum.repos.d/CentOS-fasttrack.repo' -> '/tmp/bak/CentOS-fasttrack.repo'
'/etc/yum.repos.d/CentOS-x86_64-kernel.repo' -> '/tmp/bak/CentOS-x86_64-kernel.repo'
'/tmp/bak' -> '/etc/yum.repos.d/bak'
Removing intermediate container f394979ec2c9
---> 1879ad30bd7d
Step 4/16 : ADD CentOS-Media.repo /etc/yum.repos.d/CentOS-Media.repo
---> 9d5896cc1046
Step 5/16 : RUN yum -y install vim net-tools
---> Running in d47c2dd86b67
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
Resolving Dependencies
Complete!
Removing intermediate container d47c2dd86b67
---> e893f534cf7a
Step 6/16 : ADD apache-tomcat-9.0.56.tar.gz /usr/local/
---> 1b3300fccc3c
Step 7/16 : ADD jdk-8u311-linux-x64.tar.gz /usr/local/
---> 70993a72e9a0
Step 8/16 : ENV MYPATH /usr/local
---> Running in 92d98104b0a7
Removing intermediate container 92d98104b0a7
---> 773267e1905a
Step 9/16 : WORKDIR $MYPATH
---> Running in c98203d9c533
Removing intermediate container c98203d9c533
---> 4da35fcb20ea
Step 10/16 : ENV JAVA_HOME /usr/local/jdk1.8.0_311
---> Running in 13b8db56cdd0
Removing intermediate container 13b8db56cdd0
---> 31169ef14240
Step 11/16 : ENV CLASSPATH \$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
---> Running in 63f01de9e5b4
Removing intermediate container 63f01de9e5b4
---> 87432ccec37b
Step 12/16 : ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.56
---> Running in 3275703e2794
Removing intermediate container 3275703e2794
---> 9d277cb18eaf
Step 13/16 : ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.56
---> Running in 5896cde72acd
Removing intermediate container 5896cde72acd
---> 96b83febde87
Step 14/16 : ENV PATH \$PATH:\$JAVA_HOME/bin:\$CATALINA_HOME/lib:$CATALINA_HOME/bin
---> Running in d0c5f76936dd
Removing intermediate container d0c5f76936dd
---> aec334fe360c
Step 15/16 : EXPOSE 8080
---> Running in 0cb9b4677b94
Removing intermediate container 0cb9b4677b94
---> 07285b4b0609
Step 16/16 : CMD /usr/local/apache-tomcat-9.0.56/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.56/bin/logs/catalina.out
---> Running in 2d3c2b7d1eff
Removing intermediate container 2d3c2b7d1eff
---> 8ebb0dc35ae3
Successfully built 8ebb0dc35ae3
Successfully tagged diytomcat:latest
[root@localhost centos]#
[root@localhost centos]# docker images;
REPOSITORY TAG IMAGE ID CREATED SIZE
diytomcat latest 8ebb0dc35ae3 3 minutes ago 704MB
mysql 5.7 738e7101490b 2 weeks ago 448MB
nginx latest f652ca386ed1 2 weeks ago 141MB
alpine latest c059bfaa849c 3 weeks ago 5.59MB
redis 6 40c68ed3a4d2 4 weeks ago 113MB
node 14.18-alpine f7229193551e 5 weeks ago 118MB
centos centos7.9.2009 eeb6ee3f44bd 3 months ago 204MB
golang 1.15 40349a2425ef 4 months ago 840MB
nginx 1.18.0 c2c45d506085 8 months ago 133MB
node 14.15.0 b90fa0d7cbd1 14 months ago 943MB
[root@localhost centos]#
[root@localhost centos]# docker run -d -p 9090:8080 --name NoYoWiFi_tomcat -v /home/NoYoWiFi/build/tomcat/webapps:/usr/local/apache-tomcat-9.0.56/webapps/test -v /home/NoYoWiFi/build/tomcat/logs:/usr/local/apache-tomcat-9.0.56/logs diytomcat
6707e0a8fe5bdd0199e5711a9fe7885c5ef63ee1bed28adb1c809a04b435c668
[root@localhost centos]# docker exec -it 6707e0a /bin/bash
[root@6707e0a8fe5b apache-tomcat-9.0.56]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 13/java
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 13/java
[root@6707e0a8fe5b apache-tomcat-9.0.56]# exit
exit
[root@localhost centos]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1173/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1262/master
tcp6 0 0 :::22 :::* LISTEN 1173/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1262/master
tcp6 0 0 :::9090 :::* LISTEN 6387/docker-proxy
[root@localhost centos]#
登录阿里云Docker Registry
[root@localhost ~]# docker login --username=noyowifi registry.cn-hangzhou.aliyuncs.com
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
从Registry中拉取镜像
[root@localhost ~]# docker pull registry.cn-hangzhou.aliyuncs.com/qq1284524409/noyowifi:diytomcat1.0
将镜像推送到Registry
[root@localhost ~]# docker tag 8ebb0dc35ae3 registry.cn-hangzhou.aliyuncs.com/qq1284524409/noyowifi:diytomcat1.0
[root@localhost ~]# docker push registry.cn-hangzhou.aliyuncs.com/qq1284524409/noyowifi:diytomcat1.0
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/qq1284524409/noyowifi]
7e98cf44cb33: Pushed
05067b09e794: Pushed
fb282d9194c3: Pushed
1fd9c38e9662: Pushed
4a0e328495c8: Pushed
174f56854903: Pushed
1.0: digest: sha256:1f157da37c63c8346c242661fd22bdb25a8e1c9c0cc793ad4d0059b7d02492e6 size: 1581
删除tag
[root@localhost ~]# docker rmi registry.cn-hangzhou.aliyuncs.com/qq1284524409/noyowifi:1.0
Untagged: registry.cn-hangzhou.aliyuncs.com/qq1284524409/noyowifi:1.0
查看所有docker网络
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
20af1d9be248 bridge bridge local
10f7fabcfa12 ferry_default bridge local
16ba3aadc293 host host local
993db4a9d769 none null local
[root@localhost ~]#
docker网络类型
- bridge:docker默认的网络驱动。 如果未指定驱动程序,则这是需要创建的网络类型。 当应用程序在需要通信的独立容器中运行时,通常会使用桥接网络。
当多个容器在同一个Docker主机上进行通信时,用户定义的桥接网络是最佳选择。
- host:对于独立的容器,删除容器和Docker主机之间的网络隔离,并直接使用主机的网络(若启用特权容器,将可以直接修改宿主机网络设置)。 host仅适用于Docker 17.06及更高版本上的swarm群集服务。
当网络堆栈不应与Docker主机隔离时,主机网络最佳,但您希望隔离容器的其他方面。
- overlay:Overlay networks将多个Docker守护程序连接在一起,并使swarm群集服务能够相互通信 。 还可以使用Overlay networks来促进swarm群集服务和独立容器之间的通信,或者在不同Docker守护程序上的两个独立容器之间进行通信。 此策略无需在这些容器之间执行OS级别的路由。
不同Docker主机上运行的容器进行通信时,或当多个应用程序使用swarm服务协同工作时,覆盖网络overlay是最佳选择。
- macvlan:Macvlan网络允许为容器分配MAC地址,使其显示为网络上的物理设备。 Docker守护程序通过其MAC地址将流量路由到容器。 macvlan在处理期望直接连接到物理网络的传统应用程序时,使用该驱动程序有时是最佳选择,而不是通过Docker主机的网络堆栈进行路由。
当您从VM设置迁移或需要您的容器看起来像网络上的物理主机(每个都具有唯一的MAC地址)时,Macvlan网络是最佳的。
- none:对于此容器,禁用所有网络。 通常与自定义网络驱动程序一起使用,none不适用于swarm集群服务。
创建自定义bridge
[root@localhost ~]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 noyowifi_tomcat
6e23461aa7b1daf24009957d3bf149dad5f786d5a6f9b0cf31291343ac471285
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
20af1d9be248 bridge bridge local
10f7fabcfa12 ferry_default bridge local
16ba3aadc293 host host local
993db4a9d769 none null local
6e23461aa7b1 noyowifi_tomcat bridge local
[root@localhost ~]#
查看docker网络详情
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
20af1d9be248 bridge bridge local
10f7fabcfa12 ferry_default bridge local
16ba3aadc293 host host local
993db4a9d769 none null local
6e23461aa7b1 noyowifi_tomcat bridge local
[root@localhost ~]# docker network inspect noyowifi_tomcat
[
{
"Name": "noyowifi_tomcat",
"Id": "6e23461aa7b1daf24009957d3bf149dad5f786d5a6f9b0cf31291343ac471285",
"Created": "2021-12-28T15:03:02.378896971+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.0.0/16",
"Gateway": "192.168.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {},
"Labels": {}
}
]
[root@localhost ~]#
在自定义网络下运行两个容器
[root@localhost ~]# docker run -d -P --name tomcat02 --net noyowifi_tomcat registry.cn-hangzhou.aliyuncs.com/qq1284524409/noyowifi:diytomcat1.0
dde1b4652dad3fcd38fa5d923c7eec561e95d6c81f8d86fd784a68bce6cb56cd
[root@localhost ~]# docker run -d -P --name tomcat03 --net noyowifi_tomcat registry.cn-hangzhou.aliyuncs.com/qq1284524409/noyowifi:diytomcat1.0
66d4c15943626a4c4ef8563d4828c1d2a9ce58f4b58d91be63ec68067e3594bc
[root@localhost ~]# docker network inspect noyowifi_tomcat
[
{
"Name": "noyowifi_tomcat",
"Id": "6e23461aa7b1daf24009957d3bf149dad5f786d5a6f9b0cf31291343ac471285",
"Created": "2021-12-28T15:03:02.378896971+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.0.0/16",
"Gateway": "192.168.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"66d4c15943626a4c4ef8563d4828c1d2a9ce58f4b58d91be63ec68067e3594bc": {
"Name": "tomcat03",
"EndpointID": "c878ccd49858e1119dbba4c2e045f31d23dbb9f058443d72235bcf7db3ad1b9e",
"MacAddress": "02:42:c0:a8:00:03",
"IPv4Address": "192.168.0.3/16",
"IPv6Address": ""
},
"dde1b4652dad3fcd38fa5d923c7eec561e95d6c81f8d86fd784a68bce6cb56cd": {
"Name": "tomcat02",
"EndpointID": "f92419731e7f6084ce204d24b020a19cd1043c2241a8d2db374111634436f6ee",
"MacAddress": "02:42:c0:a8:00:02",
"IPv4Address": "192.168.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
[root@localhost ~]#
docker ping测试容器连通性
[root@localhost ~]# docker network inspect noyowifi_tomcat
[
{
"Name": "noyowifi_tomcat",
"Id": "6e23461aa7b1daf24009957d3bf149dad5f786d5a6f9b0cf31291343ac471285",
"Created": "2021-12-28T15:03:02.378896971+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.0.0/16",
"Gateway": "192.168.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"66d4c15943626a4c4ef8563d4828c1d2a9ce58f4b58d91be63ec68067e3594bc": {
"Name": "tomcat03",
"EndpointID": "c878ccd49858e1119dbba4c2e045f31d23dbb9f058443d72235bcf7db3ad1b9e",
"MacAddress": "02:42:c0:a8:00:03",
"IPv4Address": "192.168.0.3/16",
"IPv6Address": ""
},
"dde1b4652dad3fcd38fa5d923c7eec561e95d6c81f8d86fd784a68bce6cb56cd": {
"Name": "tomcat02",
"EndpointID": "f92419731e7f6084ce204d24b020a19cd1043c2241a8d2db374111634436f6ee",
"MacAddress": "02:42:c0:a8:00:02",
"IPv4Address": "192.168.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
[root@localhost ~]#
[root@localhost ~]# docker exec -it tomcat02 ping 192.168.0.3
PING 192.168.0.3 (192.168.0.3) 56(84) bytes of data.
64 bytes from 192.168.0.3: icmp_seq=1 ttl=64 time=11.3 ms
64 bytes from 192.168.0.3: icmp_seq=2 ttl=64 time=0.096 ms
64 bytes from 192.168.0.3: icmp_seq=3 ttl=64 time=0.097 ms
64 bytes from 192.168.0.3: icmp_seq=4 ttl=64 time=0.122 ms
64 bytes from 192.168.0.3: icmp_seq=5 ttl=64 time=0.098 ms
64 bytes from 192.168.0.3: icmp_seq=6 ttl=64 time=0.095 ms
^C
--- 192.168.0.3 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5004ms
rtt min/avg/max/mdev = 0.095/1.982/11.388/4.206 ms
[root@localhost ~]# docker exec -it tomcat02 ping tomcat03
PING tomcat03 (192.168.0.3) 56(84) bytes of data.
64 bytes from tomcat03.noyowifi_tomcat (192.168.0.3): icmp_seq=1 ttl=64 time=0.390 ms
64 bytes from tomcat03.noyowifi_tomcat (192.168.0.3): icmp_seq=2 ttl=64 time=0.158 ms
64 bytes from tomcat03.noyowifi_tomcat (192.168.0.3): icmp_seq=3 ttl=64 time=0.132 ms
64 bytes from tomcat03.noyowifi_tomcat (192.168.0.3): icmp_seq=4 ttl=64 time=0.099 ms
64 bytes from tomcat03.noyowifi_tomcat (192.168.0.3): icmp_seq=5 ttl=64 time=0.098 ms
64 bytes from tomcat03.noyowifi_tomcat (192.168.0.3): icmp_seq=6 ttl=64 time=0.185 ms
^C
--- tomcat03 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5003ms
rtt min/avg/max/mdev = 0.098/0.177/0.390/0.100 ms
[root@localhost ~]#
不同bridge间建立互通
[root@localhost ~]# docker run -d -P --name tomcat01 --net noyowifi_tomcat registry.cn-hangzhou.aliyuncs.com/qq1284524409/noyowifi:diytomcat1.0
637eaa35ca30228681467fd4a530c51c1753f9443a6de1f42b5fa236aeb163a8
[root@localhost ~]# docker run -d -P --name tomcat02 --net noyowifi_tomcat registry.cn-hangzhou.aliyuncs.com/qq1284524409/noyowifi:diytomcat1.0
79b55fab10b067bffbe2b77af1f93e38790d66a69cb35084a1db58e2a7092650
[root@localhost ~]# docker run -d -P --name tomcat03 registry.cn-hangzhou.aliyuncs.com/qq1284524409/noyowifi:diytomcat1.0
f58375ffcf2a6a5fb2e28387d5925f89a9741de149edb4b43cac2e87cd8e1d5d
[root@localhost ~]# docker run -d -P --name tomcat04 registry.cn-hangzhou.aliyuncs.com/qq1284524409/noyowifi:diytomcat1.0
d151d833d7c1f95f54a2fe46e0e3265033e4086f7381439fbf3b0574f6cc5df8
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d151d833d7c1 registry.cn-hangzhou.aliyuncs.com/qq1284524409/noyowifi:diytomcat1.0 "/bin/sh -c '/usr/lo…" 7 seconds ago Up 6 seconds 0.0.0.0:32774->8080/tcp tomcat04
f58375ffcf2a registry.cn-hangzhou.aliyuncs.com/qq1284524409/noyowifi:diytomcat1.0 "/bin/sh -c '/usr/lo…" 12 seconds ago Up 11 seconds 0.0.0.0:32773->8080/tcp tomcat03
79b55fab10b0 registry.cn-hangzhou.aliyuncs.com/qq1284524409/noyowifi:diytomcat1.0 "/bin/sh -c '/usr/lo…" 23 seconds ago Up 22 seconds 0.0.0.0:32772->8080/tcp tomcat02
637eaa35ca30 registry.cn-hangzhou.aliyuncs.com/qq1284524409/noyowifi:diytomcat1.0 "/bin/sh -c '/usr/lo…" 29 seconds ago Up 28 seconds 0.0.0.0:32771->8080/tcp tomcat01
[root@localhost ~]# docker exec -it tomcat01 ping tomcat03
ping: tomcat03: Name or service not known
[root@localhost ~]# docker network connect noyowifi_tomcat tomcat03
[root@localhost ~]# docker network inspect noyowifi_tomcat
[
{
"Name": "noyowifi_tomcat",
"Id": "6e23461aa7b1daf24009957d3bf149dad5f786d5a6f9b0cf31291343ac471285",
"Created": "2021-12-28T15:03:02.378896971+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.0.0/16",
"Gateway": "192.168.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"637eaa35ca30228681467fd4a530c51c1753f9443a6de1f42b5fa236aeb163a8": {
"Name": "tomcat01",
"EndpointID": "67c37aa2e2bbd5723fb6c4f59a951fa3809bddc467c0027b3c35523a2b851864",
"MacAddress": "02:42:c0:a8:00:02",
"IPv4Address": "192.168.0.2/16",
"IPv6Address": ""
},
"79b55fab10b067bffbe2b77af1f93e38790d66a69cb35084a1db58e2a7092650": {
"Name": "tomcat02",
"EndpointID": "2bb5f51de2d42df3c1f1ca87b0ff13710ab9647b7ce9356f75f8894a3908e724",
"MacAddress": "02:42:c0:a8:00:03",
"IPv4Address": "192.168.0.3/16",
"IPv6Address": ""
},
"f58375ffcf2a6a5fb2e28387d5925f89a9741de149edb4b43cac2e87cd8e1d5d": {
"Name": "tomcat03",
"EndpointID": "42a2ff638e7af49a18963b8cca9f71f6b618030cbb2858b64a82ab78e969341b",
"MacAddress": "02:42:c0:a8:00:04",
"IPv4Address": "192.168.0.4/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
[root@localhost ~]# docker exec -it tomcat01 ping tomcat03
PING tomcat03 (192.168.0.4) 56(84) bytes of data.
64 bytes from tomcat03.noyowifi_tomcat (192.168.0.4): icmp_seq=1 ttl=64 time=0.266 ms
64 bytes from tomcat03.noyowifi_tomcat (192.168.0.4): icmp_seq=2 ttl=64 time=0.117 ms
64 bytes from tomcat03.noyowifi_tomcat (192.168.0.4): icmp_seq=3 ttl=64 time=0.126 ms
64 bytes from tomcat03.noyowifi_tomcat (192.168.0.4): icmp_seq=4 ttl=64 time=0.099 ms
^C
--- tomcat03 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 0.099/0.152/0.266/0.066 ms
[root@localhost ~]#
取消 docker 容器网络连接
[root@localhost ~]# docker exec -it tomcat01 ping tomcat03
PING tomcat03 (172.19.0.4) 56(84) bytes of data.
64 bytes from tomcat03.noyowifi_tomcat (172.19.0.4): icmp_seq=1 ttl=64 time=0.236 ms
64 bytes from tomcat03.noyowifi_tomcat (172.19.0.4): icmp_seq=2 ttl=64 time=0.160 ms
64 bytes from tomcat03.noyowifi_tomcat (172.19.0.4): icmp_seq=3 ttl=64 time=0.095 ms
64 bytes from tomcat03.noyowifi_tomcat (172.19.0.4): icmp_seq=4 ttl=64 time=0.098 ms
^C
--- tomcat03 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.095/0.147/0.236/0.058 ms
[root@localhost ~]# docker network disconnect noyowifi_tomcat tomcat03
[root@localhost ~]# docker exec -it tomcat01 ping tomcat03
ping: tomcat03: Name or service not known
[root@localhost ~]#
删除自定义docker网络
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
20af1d9be248 bridge bridge local
10f7fabcfa12 ferry_default bridge local
16ba3aadc293 host host local
993db4a9d769 none null local
6e23461aa7b1 noyowifi_tomcat bridge local
[root@localhost ~]# docker network rm noyowifi_tomcat
6e23461aa7b1
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
20af1d9be248 bridge bridge local
10f7fabcfa12 ferry_default bridge local
16ba3aadc293 host host local
993db4a9d769 none null local
[root@localhost ~]#
脚本创建6个Redis集群
[root@localhost ~]# cat redis.sh
#!/bin/bash
for port in $(seq 1 6);\
do \
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF >/mydata/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done
[root@localhost ~]#
启动 Redis容器
[root@localhost ~]# cat redis.sh
#!/bin/bash
for port in $(seq 1 6);\
do \
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF >/mydata/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
docker run -p 637${port}:6379 -p 1637${port}:16379 --name noyowifi_redis-${port} \
-v /mydata/redis/node-${port}/data:/data \
-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
-d --net noyowifi_redis --ip 172.38.0.1${port} redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf;
done
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8a69d5b83201 redis:5.0.9-alpine3.11 "docker-entrypoint.s…" 50 seconds ago Up 48 seconds 0.0.0.0:6376->6379/tcp, 0.0.0.0:16376->16379/tcp noyowifi_redis-6
dde9abe26f1e redis:5.0.9-alpine3.11 "docker-entrypoint.s…" 50 seconds ago Up 49 seconds 0.0.0.0:6375->6379/tcp, 0.0.0.0:16375->16379/tcp noyowifi_redis-5
4ff8d8737dec redis:5.0.9-alpine3.11 "docker-entrypoint.s…" 51 seconds ago Up 50 seconds 0.0.0.0:6374->6379/tcp, 0.0.0.0:16374->16379/tcp noyowifi_redis-4
4eb707d180f0 redis:5.0.9-alpine3.11 "docker-entrypoint.s…" 52 seconds ago Up 51 seconds 0.0.0.0:6373->6379/tcp, 0.0.0.0:16373->16379/tcp noyowifi_redis-3
b2c7b65c5059 redis:5.0.9-alpine3.11 "docker-entrypoint.s…" 53 seconds ago Up 52 seconds 0.0.0.0:6372->6379/tcp, 0.0.0.0:16372->16379/tcp noyowifi_redis-2
1feee8acb0a6 redis:5.0.9-alpine3.11 "docker-entrypoint.s…" 54 seconds ago Up 52 seconds 0.0.0.0:6371->6379/tcp, 0.0.0.0:16371->16379/tcp noyowifi_redis-1
[root@localhost ~]#
docker 创建Redis集群
[root@localhost ~]# docker exec -it noyowifi_redis-1 /bin/sh
/data # ls
appendonly.aof nodes.conf
/data # redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 172.38.0.15:6379 to 172.38.0.11:6379
Adding replica 172.38.0.16:6379 to 172.38.0.12:6379
Adding replica 172.38.0.14:6379 to 172.38.0.13:6379
M: 611b472a7bc519a050f0f58025d17ba3f8839493 172.38.0.11:6379
slots:[0-5460] (5461 slots) master
M: c94f5c2093a331f612acfa3bb0794c240ba53e8d 172.38.0.12:6379
slots:[5461-10922] (5462 slots) master
M: 8532ad1f6361e82a1bd8207ca0ed7b5067d5728c 172.38.0.13:6379
slots:[10923-16383] (5461 slots) master
S: 942e98a62354dd04bf7841a59f54da1573ee100d 172.38.0.14:6379
replicates 8532ad1f6361e82a1bd8207ca0ed7b5067d5728c
S: 7764e2665fb1afc3af61bb02f372af39569ac4a3 172.38.0.15:6379
replicates 611b472a7bc519a050f0f58025d17ba3f8839493
S: cf4ead4a04e545885c2675db582d3feaa907d2e0 172.38.0.16:6379
replicates c94f5c2093a331f612acfa3bb0794c240ba53e8d
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
..
>>> Performing Cluster Check (using node 172.38.0.11:6379)
M: 611b472a7bc519a050f0f58025d17ba3f8839493 172.38.0.11:6379
slots:[0-5460] (5461 slots) master
1 additional replica(s)
M: c94f5c2093a331f612acfa3bb0794c240ba53e8d 172.38.0.12:6379
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
S: 7764e2665fb1afc3af61bb02f372af39569ac4a3 172.38.0.15:6379
slots: (0 slots) slave
replicates 611b472a7bc519a050f0f58025d17ba3f8839493
M: 8532ad1f6361e82a1bd8207ca0ed7b5067d5728c 172.38.0.13:6379
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: cf4ead4a04e545885c2675db582d3feaa907d2e0 172.38.0.16:6379
slots: (0 slots) slave
replicates c94f5c2093a331f612acfa3bb0794c240ba53e8d
S: 942e98a62354dd04bf7841a59f54da1573ee100d 172.38.0.14:6379
slots: (0 slots) slave
replicates 8532ad1f6361e82a1bd8207ca0ed7b5067d5728c
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
/data # redis-cli -c
127.0.0.1:6379> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:276
cluster_stats_messages_pong_sent:284
cluster_stats_messages_sent:560
cluster_stats_messages_ping_received:279
cluster_stats_messages_pong_received:276
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:560
127.0.0.1:6379> cluster nodes
c94f5c2093a331f612acfa3bb0794c240ba53e8d 172.38.0.12:6379@16379 master - 0 1640682929377 2 connected 5461-10922
611b472a7bc519a050f0f58025d17ba3f8839493 172.38.0.11:6379@16379 myself,master - 0 1640682927000 1 connected 0-5460
7764e2665fb1afc3af61bb02f372af39569ac4a3 172.38.0.15:6379@16379 slave 611b472a7bc519a050f0f58025d17ba3f8839493 0 1640682929000 5 connected
8532ad1f6361e82a1bd8207ca0ed7b5067d5728c 172.38.0.13:6379@16379 master - 0 1640682928867 3 connected 10923-16383
cf4ead4a04e545885c2675db582d3feaa907d2e0 172.38.0.16:6379@16379 slave c94f5c2093a331f612acfa3bb0794c240ba53e8d 0 1640682929377 6 connected
942e98a62354dd04bf7841a59f54da1573ee100d 172.38.0.14:6379@16379 slave 8532ad1f6361e82a1bd8207ca0ed7b5067d5728c 0 1640682928353 4 connected
127.0.0.1:6379> set a b
-> Redirected to slot [15495] located at 172.38.0.13:6379
OK
[root@localhost ~]# docker stop noyowifi_redis-3
noyowifi_redis-3
172.38.0.13:6379> get a
Could not connect to Redis at 172.38.0.13:6379: Host is unreachable
(8.71s)
not connected> exit
/data # redis-cli -c
127.0.0.1:6379> get a
-> Redirected to slot [15495] located at 172.38.0.14:6379
"b"
172.38.0.14:6379>
-导出image镜像
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
fc8b43fd22b7 zabbix-agent2:centos-6.0.1 "/usr/bin/tini -- /u…" 6 minutes ago Up 5 minutes 0.0.0.0:10050->10050/tcp, :
5abb07aceeb5 zabbix-web-nginx-mysql:centos-6.0.1 "docker-entrypoint.sh" 30 hours ago Up 44 minutes 8443/tcp, 0.0.0.0:80->8080/
284aaabb2465 zabbix-server-mysql:centos-6.0.1 "/usr/bin/tini -- /u…" 30 hours ago Up 44 minutes 0.0.0.0:10051->10051/tcp, :
80ac98271659 zabbix-java-gateway:centos-6.0.1 "docker-entrypoint.s…" 30 hours ago Up 44 minutes 10052/tcp
7b40a9f30d90 mysql:8.0 "docker-entrypoint.s…" 30 hours ago Up 44 minutes 3306/tcp, 33060/tcp
[root@localhost ~]# docker save -o zabbix-agent2.tar zabbix-agent2:centos-6.0.1
-恢复备份docker镜像
[root@localhost yum.repos.d]# docker load < zabbix-agent2.tar
74ddd0ec08fa: Loading layer [==================================================>] 238.6MB/238.6MB
84ff821e3340: Loading layer [==================================================>] 12.29kB/12.29kB
d8426b3e16c1: Loading layer [==================================================>] 16.53MB/16.53MB
321d5154ea09: Loading layer [==================================================>] 294.4kB/294.4kB
6fe7f92ce717: Loading layer [==================================================>] 398.8kB/398.8kB
7ae9fa059a30: Loading layer [==================================================>] 16.9kB/16.9kB
0ed558f4605a: Loading layer [==================================================>] 27.3MB/27.3MB
5f70bf18a086: Loading layer [==================================================>] 1.024kB/1.024kB
51e23f4b240d: Loading layer [==================================================>] 10.75kB/10.75kB
Loaded image: zabbix-agent2:centos-6.0.1
[root@localhost yum.repos.d]# docker images;
REPOSITORY TAG IMAGE ID CREATED SIZE
zabbix-agent2 centos-6.0.1 5d843a608caa 38 hours ago 274MB
[root@localhost yum.repos.d]#
-停止删除none docker镜像
docker images
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop
docker rm $(docker ps -a -q)
docker images|grep none|awk '{print $3 }'|xargs docker rmi
-容器不存在,删除镜像时候提示 No such image
docker 镜像文件是存在/var/lib/docker/image/overlay2/imagedb/content/sha256目录
- 修改镜像后提交,并删除就镜像
[root@localhost patch]# docker commit 2b0 quay.io/centos/centos:stream8
sha256:ce3303aff62312b8444fbc9c0b789f3a8e0c37e2bf15d92d988e22f21075f36a
[root@localhost patch]# docker images;
REPOSITORY TAG IMAGE ID CREATED SIZE
quay.io/centos/centos stream8 2598e63f8dcd 38 seconds ago 483MB
quay.io/centos/centos <none> f8a44dfb7278 6 weeks ago 339MB
[root@localhost patch]# docker save -o centos8.tar.gz quay.io/centos/centos:stream8
[root@localhost patch]# docker rmi 259
Untagged: quay.io/centos/centos:stream8
Deleted: sha256:2598e63f8dcdd7c4a68faf559b6b58bf7d8fb2e213206772220d7ae1312461bc
Deleted: sha256:a21c358501bb4a1fbe238bb093d3dd9f6329866b1ce958e40ed172ea79f4cb0a
[root@localhost zbx]# docker rmi $(docker images |grep centos | awk -F ' ' '{print $3}')
Untagged: quay.io/centos/centos@sha256:8f2c5bfa77df306ae5f34bac3303055b5e5a443e56f4acdb26b80d2e921e657a
Deleted: sha256:f8a44dfb727810e194908a5060ab8f69fb6fc66af29a16850ccd74e8d70337c5
Deleted: sha256:81595ef400b55f5c08bb85e432336c8695349fa62a491d5523f9fd196bf484e0
Deleted: sha256:ff5872797073d7a6963e0345d1ac9db5843f431952f6663fd23cd4bce541bc73
Deleted: sha256:196dd19b5f59b4db1d2c3ede8d0ea6759bbd2149222e40f785bde296871bb6c3
Deleted: sha256:5bf135c4a0de07e52c11282c0954e3e6b7c7ddc6c8834a7fd2803c3dc6a31a69
[root@localhost patch]# docker load < centos8.tar.gz
- 查看容器使用的IP
docker inspect --format='{{.NetworkSettings.Networks.deyatech.IPAddress}}' nginx
- 修改 ip 和 port
cd /var/lib/docker/containers/容器ID/
vim hostconfig.json
修改HostIp和HostPort,若绑定0.0.0.0,则HostIp改为空就行。例:{"HostIp":"","HostPort":"9200"}