Dcocker网络互联
每个容器也是有自己的ip地址的,默认的地址像172.17.0.x/16这种。主要是挂载在主机的docker0上,用于与容器通讯以及容器间通讯。
端口映射
默认使用docker run
指令不指定参数,外部是无法访问容器的,但是像nginx,apache,mysql等需要对外提供访问的容器通过什么方式来实现呢?
使用-p(小写)
或者-P(大写)
来将容器的网络端口映射到主机的端口提供对外访问。
指定端口映射:
# 通过 docker run -p(小写)实现端口映射
# hostPort:containerPort # 所有接口的指定端口
# ip:hostPort:containerPort # 一些服务器可能有多个网卡,可以指定到特定网卡的端口
# ip::containerPort # 指定地址的随机端口
# 将nginx容器的80端口映射到本地所有接口地址的80端口
docker run --name nginx -p 80:80 nginx
# 还可以指定udp类型
docker run -d -p 127.0.0.1:53:53/udp dns-server
随机端口映射:
# 通过docker run -P(大写)实现随机端口映射,会随机在主机的高位端口映射到容器的expose暴露端口,前提容器或者镜像有配置expose端口
docker run -d --name mysql -P -e MYSQL_ROOT_PASSWORD=Acb123. mysql
查看端口映射规则:
# docker port 容器名称
[root@localhost etc]# docker port mysql
3306/tcp -> 0.0.0.0:32769
3306/tcp -> [::]:32769
33060/tcp -> 0.0.0.0:32768
33060/tcp -> [::]:32768
容器互联
不同容器间互联主要通过定义唯一的容器名称与链接容器关系实现。--name
指定容器名称,该名称是唯一,不能相同。--link
用于将容器与另外一个容器进行安全连接,不需要暴露端口等。
--link name:alias
docker run -itd --link test:test_link nginx
# 连接子容器test,链接名称test_link
查看父容器的/etc/hosts可以看到对应的条目信息。
1 游客 2025-03-27 23:48 回复
555
1 游客 2025-03-27 23:47 回复
555-1)) OR 386=(SELECT 386 FROM PG_SLEEP(15))--
1 游客 2025-03-27 23:46 回复
555-1; waitfor delay '0:0:15' --
1 游客 2025-03-27 23:44 回复
-1 OR 2+241-241-1=0+0+0+1 --
1 游客 2025-03-27 23:44 回复
555
1 游客 2025-03-27 23:43 回复
555
1 游客 2025-03-27 23:42 回复
555
1 游客 2025-03-27 23:41 回复
555
1-1; waitfor delay '0:0:15' -- 游客 2025-03-27 23:40 回复
555
1 游客 2025-03-27 23:38 回复
555
1 游客 2025-03-27 23:37 回复
555
1 游客 2025-03-27 23:35 回复
555