文章目录
一、Docker网络通信
Docker单机网络拓扑图:
网络通讯单机部署:docker0为容器网桥网桥,也是一个网络的容器,提供网络接口(veth1、veth3),并且与容器自身接口(veth0、veth2)进行互联。对外会有一个物理端口
端口映射
-
端口映射机制将容器内的服务提供给外部网络访问
-
可随机或指定映射端口范围
docker run -d -P httpd:centos
docker run -d -p 12345:80 httpd:centos
容器互联
- 在源容器和接受容器间建立一条网络通信隧道
- 使用docker run命令–link选项实现容器间互联通信
docker run -d -P --name web1 httpd:centos
docker run -d -P --name web2 --link web1:web1 httpd:centos
docker exec -it web2 /bin/bash
ping web1
二、Docker Compose容器编排
之前使用Docker,是先定义Dockerfile文件,然后使用docker build、docker run等命令操作容器。
但通常来说,一个应用系统不仅仅只包含一个服务,每个服务一般也有多个容器实例。这种情况下如果每个容器都要手动启停,那么效率之低、维护量之大可想而知。
Docker Compose是Docker官方编排(Orchestration)项目之一,负责快速的部署分布式应用。
使用Docker Compose可以轻松、高效的管理容器,它是一个用户定义和运行多个容器的Docker应用程序。在Docker Compose中你可以使用YAML文件来配置你的应用服务,然后只需要一个简单的命令,就可以创建并启动你配置的所有服务
-
Docker Compose的前身是Fig,它是一个定义及运行多个Docker容器的工具
-
使用Docker Compose不在需要使用shell脚本来启动容器
-
Docker Compose非常适合组合使用多个容器进行开发的场景
为什么使用Compose?
-
① 容器的建立和运行,自动化完成
-
② 可以对多个容器进行操作
1、Compose环境安装
[root@localhost ~]# curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
[root@localhost ~]# chmod +x /usr/local/bin/d