时间:2021-05-25
各位好,今天我们将学习一些Docker容器的基础命令。Docker 是一个开源项目,提供了一个可以打包、装载和运行任何应用的轻量级容器的开放平台。它没有语言支持、框架和打包系统的限制,从小型的家用电脑到高端服务器,在何时何地都可以运行。它可以使部署和扩展web应用程序、数据库和后端服务像搭积木一样容易,而不依赖特定技术栈或提供商。Docker适用于网络环境,它正应用于数据中心、ISP和越来越多的网络服务。
因此,这里有一些你在管理Docker容器的时候会用到的一些命令。
1. 找到Docker接口
Docker默认会创建一个名为docker0的网桥接口作为连接外部世界的基础。运行中的docker容器直接连接到网桥接口docker0。默认上,docker会分配172.17.42.1/16给docker0,它是所有运行中的容器ip地址的子网。找到Docker接口的ip地址非常简单。要找出docker0网桥接口和连接到网桥上的docker容器,我们可以在安装了docker的终端或者shell中运行ip命令。
复制代码代码如下:# ip a
2. 得到Docker容器的ip地址
如我们上面读到的,docker在宿主机中创建了一个叫docker0的网桥接口。在我们创建一个新的docker容器时,它自动被默认分配了一个在该子网范围内的ip地址。因此,要检测运行中的Docker容器的ip地址,我们需要进入一个正在运行的容器并用下面的命令检查ip地址。首先,我们运行一个新的容器并进入其中。如果你已经有一个正在运行的容器,你可以跳过这个步骤。
复制代码代码如下: # docker run -it ubuntu
现在,我们可以运行ip a来得到容器的ip地址了。
复制代码代码如下:# ip a
3. 映射暴露的端口
要映射配置在Dockerfile的暴露端口到宿主机的高位端口,我们只需用下面带上-P标志的命令。这会打开docker容器的随机端口并映射到Dockerfile中定义的端口。下面是使用-P来打开/暴露定义的端口的例子。
复制代码代码如下: # docker run -itd -P httpd
上面的命令会映射容器的端口到 httpd 容器的 Dockerfile 中定义的80端口上。我们用下面的命令来查看正在运行的容器暴露的端口。
复制代码代码如下: # docker ps
并且可以用下面的curl命令来检查。
复制代码代码如下: # curl http://localhost:49153
4. 映射到特定的端口上
我们也可以映射暴露端口或者docker容器端口到我们指定的端口上。要实现这个,我们用-p标志来定义我们所需的端口。这里是我们的一个例子。
复制代码代码如下:# docker run -itd -p 8080:80 httpd
上面的命令会映射(宿主机的)8080端口到(容器的)80上。我们可以运行curl来检查这点。
复制代码代码如下:# curl http://localhost:8080
5. 创建自己的网桥
要给容器创建一个自定义的IP地址,在本篇中我们会创建一个名为br0的新网桥。要分配需要的ip地址,我们需要在运行docker的宿主机中运行下面的命令。
复制代码代码如下:# stop docker.io
# ip link add br0 type bridge
# ip addr add 172.30.1.1/20 dev br0
# ip link set br0 up
# docker -d -b br0
6. 创建自己的网桥
要给容器创建一个自定义的IP地址,在本篇中我们会创建一个名为br0的新网桥。要分配需要的ip地址,我们需要在运行docker的宿主机中运行下面的命令。
复制代码代码如下: # stop docker.io
# ip link add br0 type bridge
# ip addr add 172.30.1.1/20 dev br0
# ip link set br0 up
# docker -d -b br0
到这里,桥接后的接口将会分配给容器在桥接子网内的新ip地址。
7. 链接到另外一个容器上
我们可以用Docker将一个容器连接到另外一个上。我们可以在不同的容器上运行不同的程序,并且相互连接或链接。链接允许容器间相互连接并从一个容器上安全地传输信息给另一个容器。要做到这个,我们可以使用--link标志。首先,我们使用--name标志来标示training/postgres镜像。
复制代码代码如下:# docker run -d --name db training/postgres
完成之后,我们将容器db与training/webapp链接来形成新的叫web的容器。
复制代码代码如下:# docker run -d -P --name web --link db:db training/webapp python app.py
总结
Docker网络很神奇也好玩,我们可以对docker容器做很多事情。我们可以把玩这些简单而基础的docker网络命令。docker的网络是非常先进的,我们可以用它做很多事情。
如果你有任何的问题、建议、反馈请在下面的评论栏写下来以便于我们我们可以提升或者更新文章的内容。谢谢! 玩得开心!:-)
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
如果你是Docker的新手,看一下你应该学习的一些基础命令,以便开始管理容器。Docker对软件开发生命周期产生了巨大影响,使得大规模软件部署变得简单而且安全。
前言Docker镜像是由Dockerfile和一些必要的依赖项组成的,Docker容器是动态的Docker镜像。要使用Docker命令,首先需要知道您是在处理镜
Docker基础信息 首先,先查询Docker使用的后端存储。使用命令dockerinfo,主要关注StorageDriver相关的部分。$dockerinf
前言Netcore项目部门在Windows有很多种方式,大致有以下几种,dotnet命令,iis(windowshosts),一些开源的应用容器(docker)
1、如果docker主机不需要通过代理连接外网则docker的相关命令(如dockersearch)或docker容器与网络相关的操作都可以正常进行,不需要特殊