docker 容器互联,Docker Compose
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 容器互联,Docker Compose相关的知识,希望对你有一定的参考价值。
一、容器互联
通过docker run
命令的--link
参数可以让容器之间通过连接(linking)系统进行交互。
参数格式:--link name:alias
,name是要链接的容器名称, alias是此连接的别名。
容器的连接系统会依据容器的名称,创建容器之间一个安全隧道,在启动容器的时候不使用-p
和-P
参数(不用映射端口到宿主主机),从而避免了暴露端口到外部网络。
link方式
通过link方式创建容器,然后我们可以使用被link容器的别名进行访问。
从而解除应用对IP的依赖。
不幸的是,link方式只能解决单机容器间的互联。多机情况下,容器的互联需要其他的方式。
通过docker run
命令的--name
参数来自定义容器名称(容器的名称是唯一的)。
通过docker ps
命令结果的NAMES部分,查看容器名称。
Docker通过环境变量为容器公开连接信息,还添加host信息到父容器的/etc/hosts
文件。
用户可以链接多个父容器到子容器。
先创建一个新的容器
[[email protected] docker]# docker run -it --name vm1 ubuntu
在创建一个容器,使与vm1互联
[[email protected] docker]# docker run -it --name vm2 --link vm1:cara1 ubuntu :前为要连接容器名,后面为给起的别名
查看/etc/hosts文件
二、Docker Compose管理多个容器
Docker Compose是一个用来定义和运行复杂应用的Docker工具。使用Compose,你可以在一个文件中定义一个多容器应用,然后使用一条命令来启动你的应用,完成一切准备工作。
一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose,不再需要使用shell脚本来启动容器。在配置文件中,所有的容器通过services
来定义,然后使用docker-compose
脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。
完整的命令列表如下:
build
构建或重建服务
help
命令帮助
kill
杀掉容器
logs
显示容器的输出内容
port
打印绑定的开放端口
ps
显示容器
pull
拉取服务镜像
restart
重启服务
rm
删除停止的容器
run
运行一个一次性命令
scale
设置服务的容器数目
start
开启服务
stop
停止服务
up
创建并启动容器
下载docker-compose-Linux-x86_64-1.16.1 移动到可执行路径
[[email protected] bin]# pwd
/bin
[[email protected] bin]# mv docker-compose-Linux-x86_64-1.16.1 docker-compose
[[email protected] bin]# chmod +x docker-compose 给权限
建目录
[[email protected] docker]# mkdir compose
查看是http镜像
在compose目录下编辑文件
[[email protected] compose]# vim docker-compose.yml
web1:
image: rhel7:v2
volumes:
- ./web1/index.html:/var/www/html/index.html
expose:
- 80
web2:
image: rhel7:v2
volumes:
- ./web2/index.html:/var/www/html/index.html
expose:
- 80
haproxy:
image: haproxy
volumes:
- ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
links:
- web1
- web2
ports:
- "8080:80"
启动haproxy容器
[[email protected] docker]# docker run -d --name cara haproxy
创建haproxy目录
[[email protected] compose]# mkdir haproxy
[[email protected] compose]# cd haproxy/
[[email protected] haproxy]# vim haproxy.cfg
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
stats uri /status
frontend balancer
bind 0.0.0.0:80
mode http
default_backend web_backends
backend web_backends
balance roundrobin
server apache web1:80 check
server nginx web2:80 check
建立web1 web2目录 在里面写index.html文件 以便访问
[[email protected] compose]# mkdir web1
[[email protected] compose]# mkdir web2
创建并启动容器
[[email protected] compose]# docker-compose up
查看端口8080开启
测试:
以上是关于docker 容器互联,Docker Compose的主要内容,如果未能解决你的问题,请参考以下文章