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上运行,并且不将端口暴露给外部世界 ...
随机推荐
- 深入理解Https如何保证通信安全
作为一名ABC搬运工,我相信很多人都知道Https,也都知道它是用来保证通信安全的,但是如果你没有深入了解过Https,可能并不知道它是如何保证通信安全的.我也是借着这次机会,和大家分享下我深入了解的 ...
- 记一次在Windows10桌面环境搭建Jekins的吐血经历
目录 写在前面 故事背景 踩坑详情 最后总结 写在前面 首先声明,除非万不得已,千万不要在Windows环境做这个事情,否则就等着各种坑吧. 本人一贯的立场都是坚持用正确的方法做事,显然在Window ...
- maven的setting配置远程仓库
maven的setting,配置远程库. <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mi ...
- SpringBoot开发二十-私信列表
私信列表功能开发. 发送私信功能开发 首先创建一个实体类:Message package com.nowcoder.community.entity; import java.util.Date; p ...
- mac 软件意外退出
大概率的原因是软件签名问题. 先安装 xcode xcode-select --install 然后签名 sudo codesign --force --deep --sign - 文件位置(直接将应 ...
- 【MySQL】自定义数据库连接池和开源数据库连接池的使用
数据库连接池的概念 数据库连接背景 数据库连接是一种关键的.有限的.昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性 ...
- 区块链-NFT 的实现原理
作者:林冠宏 / 指尖下的幽灵.转载者,请: 务必标明出处. 博客:http://www.cnblogs.com/linguanh/ 掘金:https://juejin.im/user/1785262 ...
- 深层剖析鸿蒙轻内核M核的动态内存如何支持多段非连续性内存
摘要:鸿蒙轻内核M核新增支持了多段非连续性内存区域,把多个非连续性内存逻辑上合一,用户不感知底层的不同内存块. 本文分享自华为云社区<鸿蒙轻内核M核源码分析系列九 动态内存Dynamic Mem ...
- COM组件的使用方法
https://prismlibrary.com/docs/wpf/converting-from-7.html Requirement: 1.创建myCom.dll,该COM只有一个组件,两个接口I ...
- 获取sim 卡的IMEI 和 IMSI
IReadOnlyList<string> networkAccIds = Windows.Networking.NetworkOperators.MobileBroadbandAccou ...