Docker进阶学习-1

1、运行一个容器

docker run -it --rm -u root  --name  test1  tomcat sh 
docker ps -a

 1.1当退出容器时

容器消失了

 主要是参数-rm,-rm的意思是退出容器时自动删除。执行docker run命令带--rm命令选项,等价于在容器退出后,执行docker rm -v。

2、在容器内执行ifconfig,提示找不到

 去/usr/sbin目录

确实没有这个命令

 2.1为了实现这个功能,run时映射宿主机目录

docker run -it -v /usr/sbin:/usr/sbin --rm -u root  --name test1  tomcat sh

 可以查看ifconfig了。

3、测试容器间互通性

新建一个test2容器

docker run -it -v /usr/sbin:/usr/sbin --rm -u root  --name test2  tomcat sh

互相ping,可以ping通

 

 互相ping容器名或者ping自己都无法Ping通

 4、网桥及作用

-------------------------------------------------------------------------------------
docker的桥接网络使用虚拟网桥,bridge网络用于同一主机上的docker容器相互通信,连接到同一个网桥的docker容器可以相互通信

默认网桥Docker0
默下启动docker之后会创建一个名为 docker0的网桥,新创建的容器都会自动连接到该网桥,但默认网桥具有一定缺陷

默认桥接网络中的容器只能通过IP地址访问其他容器(除非使用遗留的-link指令连接两个容器),而容器的IP创建前并不确定,为我们部署系统造成很大障碍(如服务的注册与发现,gateway的基本设置)
由于默认桥接网络只有一个,因此所有容器的网络配置都是一样的.
自定义网络
自定义桥接网络提供DNS解析,可以通过容器的名字或是别名访问其他容器
用户自定义网络可以在创建时指定网络配置(例如默认网关、MTU等),不需要重启docker,灵活性更高
多个容器可以使用同一个docker-compose(与docker service有关)文件启动 ,可以在该文件中定义共享环境变量
---------------------------------------------------------------------------------------
本小节内容引自:https://blog.csdn.net/gxf212/article/details/89711638

4.1创建网桥

docker network create -d bridge CTN-NET

 4.2查看网桥

 

 

 4.3 重新run docker并加入该网桥

docker run -it -v /usr/sbin:/usr/sbin --rm -u root  --name test1 --network bnet  tomcat sh

 网段变成172.19.0.xx了,然后再创建test2

4.3互ping测试,ip和容器名都可以通了

 

 

 

  

  

  

 

  

  

 

posted @ 2021-08-19 22:38  zhaogaojian  阅读(47)  评论(0编辑  收藏  举报