Docker 容器间的单向连接
Docker 容器间的单向连接
前言
a. 本文主要为 Docker的视频教程 笔记。
b. 环境为 CentOS 7.0 云服务器
c. 上一篇:Dockerfile 自动制作 Docker 镜像(三)—— 镜像的分层与 Dockerfile 的优化
1. 基本参数 --link
容器间使用 --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
Docker 容器间的单向连接的更多相关文章
- Docker容器的跨主机连接
		
Docker容器的跨主机连接 Docker容器的跨主机连接 使用网桥实现跨主机容器连接 网络拓扑 网络连接使用的是Bridge 操作 修改/etc/network/interfaces文件,分配静态I ...
 - Docker容器的使用和连接
		
在上一篇文章<Docker从安装部署到Hello World>介绍了如何在CentOS7上安装Docker.这篇文章主要介绍一下Docker容器的使用和连接. vDocker 容器使用 1 ...
 - 从Docker容器内部,如何连接到本机的本地主机?
		
原文 从Docker容器内部,如何连接到本机的本地主机? 编辑:如果您使用的是Docker-for-mac或Docker-for-Windows 18.03+,只需使用主机连接到您的mysql服务即可 ...
 - Docker学习(15) Docker容器的跨主机连接
		
Docker容器的跨主机连接 Docker使用网桥跨主机容器连接 Docker使用Open cSwitch实现跨主机容器连接 Docker使用weave实现跨主机容器连接
 - docker容器间通信
		
现在在我们的docker中已经有了三个容器,分别是DB/API/UI三个容器,三个容器间肯定是要进行互相通信的 可以查看docker的官方文档,https://docs.docker.com/engi ...
 - docker 容器间网络配置
		
创建一个docker容器,docker系统会自动为该容器分配一个ip地址,通常是172.17开头. 我们可以在主机上用 docker inspect 命令 或者进入容器用ifconfig命令来查看容器 ...
 - Docker 容器的跨主机连接
		
使用网桥实现跨主枳容器连接 不推荐 使用OpenvSwitch实现跨主机容器连接 OpenvSwitch: OpenvSwitch是一个高质量的.多层虚拟交换枳,使用开源Apache2.0许可协议,由 ...
 - Docker容器间网络互联原理,讲不明白算我输....
		
@ 目录 一.今天我们要搞明白的实验 二.前置网络知识 2.1.docker默认为我们创建的网络 2.2.怎么理解docker0网桥 2.3.什么是veth-pair技术? 三.同一个局域网中不同主机 ...
 - docker ——从docker容器的内部,连接本机的mysql
		
所以我有一个Nginx运行在一个docker容器,我有一个mysql运行在localhost,我想连接到我的Nginx内的MySql. MySql在localhost上运行,并且不将端口暴露给外部世界 ...
 
随机推荐
- .net core 响应的json数据驼峰显示问题。
			
在.net core webapi中,默认响应的json数据是以驼峰显示的,即首字母小写的方式.如果让其正常显示,只需要在全局配置即可.代码如下图: 配置之后,响应数据就不会再以驼峰的形式展示了.而是 ...
 - Share Keyboard, Mouse and Clipboard between Multiple Computers
			
Synergy version: 1.4.12 Server Download and install synergy-1.4.12-Linux-i686.deb on Mint 14; Run it ...
 - Linux中的DNS主从解析
			
目录 一.主服务器配置(紧接着正反解析实验) 1.1.修改区域配置文件 二.从服务器配置(启动另一台虚拟机) 2.1.安装服务 2.2.修改主配置文件 2.3.修改区域配置文件 2.4.修改dns服务 ...
 - Ubuntu 查询用户账号
			
查看当前登录 who users 查看系统中所有用户: grep bash /etc/passwd XXXX-VirtualBox:~/桌面$ w 13:23:26 up 15 min, 1 user ...
 - 009 FPGA实现网口通信的几种方式【转载】
			
从硬件上来说,一般PHY芯片为模数混合电路,负责接收电.光这类模拟信号,经过解调和A/D转换后通过MII接口将信号交给MAC芯片进行处理.一般MAC芯片为纯数字电路. 物理层定义了数据传送与接收所需要 ...
 - 让div占据父元素剩下的所有位置
			
场景模拟: 现在有一个父容器,里面有俩个div,左边的要给一个固定的200px的宽度,父容器剩下的宽度都归右边的div该怎么完成?HTML代码: <div class="wrap&qu ...
 - 使用git下载码云仓库文件步骤总结
			
从码云下载文件的两种方式(私服时) 1.让私服管理者复制链接,然后你加入私服: 2.生成公钥,让私服管理者添加你的公钥. 在eclipse中找到git,输入自己的登录账号和密码,下载文件到本地仓库,然 ...
 - 【springcloud】模拟RPC调用(Feign)
			
转自:https://blog.csdn.net/pengjunlee/article/details/86615408 Feign简介 Feign是一个声明式的Web Service客户端,它能够让 ...
 - linux下查看磁盘使用内存及清除日志内存
			
1.查看磁盘内存 df -h 2.清理日志内存 echo "">catalina.out
 - Learning ROS: Running ROS across multiple machines
			
Start the master ssh hal roscore Start the listener ssh hal export ROS_MASTER_URI=http://hal:11311 r ...