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 容器间的单向连接的更多相关文章

  1. Docker容器的跨主机连接

    Docker容器的跨主机连接 Docker容器的跨主机连接 使用网桥实现跨主机容器连接 网络拓扑 网络连接使用的是Bridge 操作 修改/etc/network/interfaces文件,分配静态I ...

  2. Docker容器的使用和连接

    在上一篇文章<Docker从安装部署到Hello World>介绍了如何在CentOS7上安装Docker.这篇文章主要介绍一下Docker容器的使用和连接. vDocker 容器使用 1 ...

  3. 从Docker容器内部,如何连接到本机的本地主机?

    原文 从Docker容器内部,如何连接到本机的本地主机? 编辑:如果您使用的是Docker-for-mac或Docker-for-Windows 18.03+,只需使用主机连接到您的mysql服务即可 ...

  4. Docker学习(15) Docker容器的跨主机连接

    Docker容器的跨主机连接 Docker使用网桥跨主机容器连接 Docker使用Open cSwitch实现跨主机容器连接 Docker使用weave实现跨主机容器连接

  5. docker容器间通信

    现在在我们的docker中已经有了三个容器,分别是DB/API/UI三个容器,三个容器间肯定是要进行互相通信的 可以查看docker的官方文档,https://docs.docker.com/engi ...

  6. docker 容器间网络配置

    创建一个docker容器,docker系统会自动为该容器分配一个ip地址,通常是172.17开头. 我们可以在主机上用 docker inspect 命令 或者进入容器用ifconfig命令来查看容器 ...

  7. Docker 容器的跨主机连接

    使用网桥实现跨主枳容器连接 不推荐 使用OpenvSwitch实现跨主机容器连接 OpenvSwitch: OpenvSwitch是一个高质量的.多层虚拟交换枳,使用开源Apache2.0许可协议,由 ...

  8. Docker容器间网络互联原理,讲不明白算我输....

    @ 目录 一.今天我们要搞明白的实验 二.前置网络知识 2.1.docker默认为我们创建的网络 2.2.怎么理解docker0网桥 2.3.什么是veth-pair技术? 三.同一个局域网中不同主机 ...

  9. docker ——从docker容器的内部,连接本机的mysql

    所以我有一个Nginx运行在一个docker容器,我有一个mysql运行在localhost,我想连接到我的Nginx内的MySql. MySql在localhost上运行,并且不将端口暴露给外部世界 ...

随机推荐

  1. 我把阿里、腾讯、字节跳动、美团等Android性能优化实战整合成了一个PDF文档

    安卓开发大军浩浩荡荡,经过近十年的发展,Android技术优化日异月新,如今Android 11.0 已经发布,Android系统性能也已经非常流畅,可以在体验上完全媲美iOS. 但是,到了各大厂商手 ...

  2. OpenCV 之 特征匹配

    OpenCV 中有两种特征匹配方法:暴力匹配 (Brute force matching) 和 最近邻匹配 (Nearest Neighbors matching) 它们都继承自 Descriptor ...

  3. 以命令行方式使用Desktop版Ubuntu

    方法1:安装Ubuntu Server版,好处是默认不安装GUI,且可以自动安装ssh服务和其他很多服务,且消耗系统资源少(约200MB内存,Desktop版启动后需要500MB左右内存),启动和关闭 ...

  4. 用Autohotkey让Kitty命令行变得更好用

    下面的脚本实现Win+K键激活一个输入框,给出了kitty命令行常用的几种格式,基本可分为两种:连接保存好的模板(session)和完全手工连接,前者用-load加Session名称,后者需要在命令行 ...

  5. 博客CSS样式 二

    预览 可自行更改颜色 背景图 页面定制 CSS 代码中加入: url为背景图地址,可下载心仪背景图后上传到博客园相册后获取地址 body { color: #000; background: url( ...

  6. docker部署minio

    快速部署 docker run -p 9000:9000 --name myminio \ -e "MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE" \ ...

  7. 【spring 注解驱动开发】spring事务处理原理

    尚学堂spring 注解驱动开发学习笔记之 - 事务处理 事务处理 1.事务处理实现 实现步骤: * 声明式事务: * * 环境搭建: * 1.导入相关依赖 * 数据源.数据库驱动.Spring-jd ...

  8. MVVMLight学习笔记(七)---Messenger使用

    一.概述 Messenger中文解释为信使的意思,顾名思义,在MvvmLight中,它的主要作用是用于View和ViewModel.ViewModel和ViewModel之间的通信. 考虑以下场景: ...

  9. 处理URLs

    问题 你有一个包含相对URLs路径的HTML文档,需要将这些相对路径转换成绝对路径的URLs. 方法 在你解析文档时确保有指定base URI,然后 使用 abs: 属性前缀来取得包含base URI ...

  10. air530GPS数据通过air202上传阿里云

    写硬件博客真是太难了 GPS/北斗 导航模块 Air530开发板G1学习日记 上面这个博客详细介绍了如何测试使用Air530模块根据稳重[Air530 和Air 202 进行配合使用,实现2G GPR ...