小tips:

1,在nginx的镜像中,并未包含ping工具;

2,在busybox的镜像中,是包含ping工具和telnet工具的,所以如果想测试互通性,可以利用busybox来检查;

实验1:利用busybox可以确定,容器和主机的网络是否可以互通。

实验步骤:1,创建busybox容器,然后实验ping结果,实验telnet结果;

docker pull busybox

docker run --it --rm busybox

启动后执行测试,我本地的ip地址是:10.70.74.101

/ # ping 10.70.74.101
PING 10.70.74.101 (10.70.74.101): data bytes
bytes from 10.70.74.101: seq= ttl= time=0.602 ms
bytes from 10.70.74.101: seq= ttl= time=1.099 ms
bytes from 10.70.74.101: seq= ttl= time=1.284 ms
bytes from 10.70.74.101: seq= ttl= time=1.017 ms
^C
--- 10.70.74.101 ping statistics ---
packets transmitted, packets received, % packet loss
round-trip min/avg/max = 0.602/1.000/1.284 ms

测试redis的连通性:

/ # telnet 10.70.74.101 6379

quit
+OK
Connection closed by foreign host

可以看到:在容器中是可以联通本地的ip,也可以连通对应的端口号的。如果连通受限,通常是因为应用程序设置的限制。(比如redis是可以设置必须通过某些ip才能访问的,放开后就可以了)

2,查看busybox容器的ip,在本地宿主机上实验ping记过,实验telnet结果。

得到容器的ip:

/ # ifconfig | grep inet
inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0
inet addr:127.0.0.1 Mask:255.0.0.0

  

测试ping:

$ ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
36 bytes from 10.252.206.2: Destination Host Unreachable
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 7efd 0 0000 3d 01 fded 10.70.74.101 172.17.0.2 Request timeout for icmp_seq 2
36 bytes from 10.252.206.2: Destination Host Unreachable
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 5e38 0 0000 3d 01 1eb3 10.70.74.101 172.17.0.2 ^C
--- 172.17.0.2 ping statistics ---
4 packets transmitted, 0 packets received, 100.0% packet loss

测试telnet:

ping测试失败了,telnet就不用测试了。

实验结论:

a,在默认配置下,docker容器可以访问宿主机的ip和端口;

b,在默认配置下,宿主机无法直接ping通容器的ip,也无法telnet通端口号。

实验2:docker run的相关参数

-v参数解释:这个参数是为了能做文件映射。示例:-v [/host/file]:[/docker/file] -v [/host/file2:/host/file2]

-p参数解释:这个参数是为了做端口映射。示例:-p [host-port]:[docker-port]

-i参数解释:这个参数是为了能进入交互式模式

步骤1:使用busybox启动容器

$ docker run -it --rm busybox
/ # cat /tmp/a.txt
cat: can't open '/tmp/a.txt': No such file or directory

步骤2:使用-v参数启动容器(先在宿主机中创建文件/tmp/a.txt,然后再启动busybox查看是否能访问)

$ docker run -v /tmp:/tmp -it --rm busybox
/ # cat /tmp/a.txt
hello, world!

解释:步骤1中的-it是交互式模式运行,--rm是如果有这个镜像创建的容器则默认删除容器后再次创建,这样保证只有一个相关联的容器在执行,有利于反复测试。

步骤2中的-v参数将宿主机的/tmp映射到容器中的/tmp目录,可以看到宿主机中的/tmp/a.txt。

与docker相关的网络工具:

如何把redis的端口开放给其他网络访问:https://www.cnblogs.com/zhangqigao/p/9110544.html

phpunit的文档:http://www.phpunit.cn/manual/current/en/phpunit-book.html

19-07 【docker】随笔笔记的更多相关文章

  1. Linux Mint 19.1 安装 Docker 过程笔记

    Linux Mint 19.1 安装 Docker 过程笔记 参考了很多教程,可能有很多教程已经过时. 综合记录一下. 首先修改一下系统的源,使用国内的源. 然后安装 docker sudo apt ...

  2. docker~学习笔记索引

    回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ...

  3. Docker学习笔记 - Docker容器内部署redis

    Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...

  4. Docker入门笔记

    Docker入门笔记 随笔记录初学Docker遇到的问题, 以免下次再犯. 本机系统Ubuntu18.04 安装 Docker有2个版本 Community Edition (CE) 社区版(免费) ...

  5. Centos7——docker入门(笔记)

    docker 入门(笔记) 一.Docker是什么? 官方原话: Docker provides a way to run applications securely isolated in a co ...

  6. Docker学习笔记 — 配置国内免费registry mirror

    Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror

  7. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  8. 7月19日Docker&Kubernetes技术沙龙总结 - DockOne.io

    7月19日Docker&Kubernetes技术沙龙总结 - DockOne.io undefined

  9. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  10. docker学习笔记(一)—— ubuntu16.04下安装docker

    docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...

随机推荐

  1. centos 7刚安装后无法联网解决

    从6版本到7版本后, 7版本默认会关闭网卡 ,并且ifconfig 命令也换了 ip 命令来代替, 在这记录一下 ,希望 新人发现. 不是源的问题, 是压根没开网卡... 下面是写给萌新的: 先看一下 ...

  2. 易酷 cms2.5 本地文件包含漏洞 getshell

    易酷 cms2.5  本地文件包含漏洞 getshell 首先下载源码安装(http://127.0.0.1/test/ekucms2.5/install.php) 安装成功直接进行复现吧 本地包含一 ...

  3. WordPress版微信小程序3.2版发布

    WordPress版微信小程序(下称开源版)距离上次更新已经过去大半年了,在此期间,我开发新的专业版本-微慕小程序(下称微慕版),同时开源版的用户越来越多,截止到2018年11月26日,在github ...

  4. GPIO输入输出各种模式(推挽、开漏、准双向端口)详解

    转自:https://blog.csdn.net/techexchangeischeap/article/details/72569999 概述 能将处理器的GPIO(General Purpose ...

  5. 使用nodeValue获取值与a标签默认跳转的冲突问题

    今天看javascript DOM编程艺术(第2版)发现这样一个例子: 效果图: 完整代码: <!DOCTYPE html> <html lang="en"> ...

  6. fedora 26 安装 mplayer smplayer

    dnf install mplayer dnf install smplayer 提示仓库 里没有这个软件 fedora默认不提供一些有版权争议的软件,非开源的项目包,所以需要用rpm fusion源 ...

  7. JAVA体系学习-导向

    一:当前学习内容 数值类型处理总结,字符类型处理总结,日期类型处理总结 spring 事务源码分析 spring源码系列 二:当前学习 主攻:并发编程->RPC原理->MQ原理->- ...

  8. 在云主机上基于nginx部署基于Flask的网站服务器 (自己部署 )

    1.申请云主机 a.阿里云 (注意:阿里云的服务器需要手动添加安全规则使能80端口) b.腾讯云 2.把网站服务器程序拷贝到云主机 3.远程登录云主机 4.解压网站服务器程序 yum install ...

  9. 学习笔记:python3,PIP安装第三方库(2017)

    https://pip.pypa.io/en/latest/quickstart/ pip的使用文档 http://www.lfd.uci.edu/~gohlke/pythonlibs/   .whl ...

  10. Oracle数据库row_number详解<转>

    语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) 简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW ...