zoukankan      html  css  js  c++  java
  • Docker 容器间的单向连接

    Docker 容器间的单向连接

    前言

    a. 本文主要为 Docker的视频教程 笔记。
    b. 环境为 CentOS 7.0 云服务器
    c. 上一篇:Dockerfile 自动制作 Docker 镜像(三)—— 镜像的分层与 Dockerfile 的优化

    容器间使用 --link 参数单向连接,命令格式为:

    docker run --link <CONTAINER_NAME>:<CUSTOM_ALIAS>
    

    如:先启动一个容器

    [root@VM_0_2_centos ~]# docker run -it -d --name host1 centos:7

    再启动一个容器,单向连接之前的容器(对之前的容器使用了名为“test”的别名)

    [root@VM_0_2_centos ~]# docker run -it -d --name host2 --link host1:test centos:7

    此时在容器 host2 中使用 ping 命令访问 host1 容器:

    [root@7691dc4a8473 /]# ping host1
    PING test (172.17.0.2) 56(84) bytes of data.
    64 bytes from test (172.17.0.2): icmp_seq=1 ttl=64 time=0.071 ms
    64 bytes from test (172.17.0.2): icmp_seq=2 ttl=64 time=0.091 ms
    64 bytes from test (172.17.0.2): icmp_seq=3 ttl=64 time=0.075 ms

    使用别名 test 访问:

    [root@7691dc4a8473 /]# ping test
    PING test (172.17.0.2) 56(84) bytes of data.
    64 bytes from test (172.17.0.2): icmp_seq=1 ttl=64 time=0.058 ms
    64 bytes from test (172.17.0.2): icmp_seq=2 ttl=64 time=0.067 ms
    64 bytes from test (172.17.0.2): icmp_seq=3 ttl=64 time=0.066 ms

    均可访问成功。

    2. 应用,以安装 zabbix 为例

    提前 pull 了 mysql:5.7, zabbix/zabbix-java-gateway,zabbix/zabbix-server-mysql,zabbix/zabbix-web-nginx-mysql 的镜像

    docker run --name mysql-server -t 
          -e MYSQL_DATABASE="zabbix" 
          -e MYSQL_USER="zabbix" 
          -e MYSQL_PASSWORD="zabbix_pwd" 
          -e MYSQL_ROOT_PASSWORD="root_pwd" 
          -d mysql:5.7 
          --character-set-server=utf8 --collation-server=utf8_bin
    
    docker run --name zabbix-java-gateway -t 
          -d zabbix/zabbix-java-gateway:latest
    
    docker run --name zabbix-server-mysql -t 
          -e DB_SERVER_HOST="mysql-server" 
          -e MYSQL_DATABASE="zabbix" 
          -e MYSQL_USER="zabbix" 
          -e MYSQL_PASSWORD="zabbix_pwd" 
          -e MYSQL_ROOT_PASSWORD="root_pwd" 
          -e ZBX_JAVAGATEWAY="zabbix-java-gateway" 
          --link mysql-server:mysql 	# 此处使用了 --link 连接 mysql
          --link zabbix-java-gateway:zabbix-java-gateway  # 此处使用了 --link 连接 zabbix-java-gateway
          -p 10051:10051 
          -d zabbix/zabbix-server-mysql:latest
    
    docker run --name zabbix-web-nginx-mysql -t 
          -e DB_SERVER_HOST="mysql-server" 
          -e MYSQL_DATABASE="zabbix" 
          -e MYSQL_USER="zabbix" 
          -e MYSQL_PASSWORD="zabbix_pwd" 
          -e MYSQL_ROOT_PASSWORD="root_pwd" 
          --link mysql-server:mysql 	# 此处使用了 --link 连接 mysql
          --link zabbix-server-mysql:zabbix-server 	# 此处使用了 --link 连接 zabbix-server-mysql
          -p 8080:8080 	# 注意此处
          -d zabbix/zabbix-web-nginx-mysql:latest
    

    比较奇怪的是, 启动 zabbix-web-nginx-mysql 时,官网和视频教程都是映射80端口,但无法访问。通过查看容器内部的端口监听,发现只监听了 8080 端口。因此删除容器后重新改为映射 8080 端口,可以访问。用户名为 Admin,密码为 zabbix。

    后记

    zabbix([`zæbiks])是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
    zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
    zabbix 由2部分构成,zabbix server 与可选组件 zabbix agent。
    zabbix server 可以通过 SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在 Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X 等平台上。

    这应该是Docker系列里面最短的一篇了QAQ。

    参考

    zabbix 是什么:https://baike.baidu.com/item/zabbix/6780368

  • 相关阅读:
    NodeJs 的Module.export 和 export
    Angular 调试
    设计模式 -- 访问者
    typescript 枚举
    Swagger 实践 <二>
    eventFlow 系列 <三> 查询所有
    成员变量的隐藏和方法的重写
    Facetoprocess_program_design
    ATM_tests
    transmission protocol
  • 原文地址:https://www.cnblogs.com/battor/p/unidirection_connect_between_containers.html
Copyright © 2011-2022 走看看