设为首页 收藏本站
查看: 1034|回复: 0

[经验分享] docker 容器互联,Docker Compose

[复制链接]

尚未签到

发表于 2019-2-21 11:07:07 | 显示全部楼层 |阅读模式
一、容器互联
  通过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文件。
用户可以链接多个父容器到子容器。

  先创建一个新的容器
  [root@foundation12 docker]# docker run -it --name vm1 ubuntu
在创建一个容器,使与vm1互联
[root@foundation12 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   移动到可执行路径
  [root@foundation12 bin]# pwd
/bin

  [root@foundation12 bin]# mv docker-compose-Linux-x86_64-1.16.1 docker-compose
  [root@foundation12 bin]# chmod +x docker-compose     给权限


  建目录

  [root@foundation12 docker]# mkdir compose

  
  查看是http镜像

  
  在compose目录下编辑文件

  [root@foundation12 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容器

  [root@foundation12 docker]# docker run -d --name cara haproxy
  

  创建haproxy目录

  [root@foundation12 compose]# mkdir haproxy
[root@foundation12 compose]# cd haproxy/
[root@foundation12 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文件 以便访问
  [root@foundation12 compose]# mkdir web1
[root@foundation12 compose]# mkdir web2

  
  创建并启动容器
  [root@foundation12 compose]# docker-compose up
  

  查看端口8080开启

  
  测试:
  
  




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-675267-1-1.html 上篇帖子: docker 制作镜像 下篇帖子: docker swarm ,滚动更新
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表