资讯专栏INFORMATION COLUMN

02-Docker新手入门网络篇

王笑朝 / 1218人阅读

摘要:基础入门之网络容器篇本篇文章来自于官方基于文档的指南学习整理如果英语好的同学其实可以看文档,更加详细。网络篇结束下面是我在学习途中遇到的一些问题而寻找的答案。

基础入门之网络容器篇
Author:zhaojunlike@
Email:zhaojunlike@gmail.com
本篇文章来自于官方基于文档的指南学习整理
如果英语好的同学其实可以看文档,更加详细。传送门

Step1:网络容器
1.部署一个默认网络容器
查看网络列表
#docker network ls
我们看到我们有3个network,bridge是一个特殊的网络,docker默认的在这个网络中启动我们的容器。

Step1:创建一个后台运行的容器,如果您不了解这些命令那么您可以回到第一节blog文章里面查看
#docker run -itd --name=network-test centos
Step2:查看容器的ip地址
#docker network inspect bridge
Step3:从一个网络中移除一个容器(后面一个参数|the name is faster)
#docker network disconnect bridge [id|name]

咦,好像我们docker network还不知道有哪些,我们来help一下
#docker network 
Usage:    docker network COMMAND

Manage Docker networks

Options:
     --help   Print usage

Commands:
 connect     Connect a container to a network(让一个容器链接一个网络)
 create      Create a network(创建一个网络)
 disconnect  Disconnect a container from a network(取消链接)
 inspect     Display detailed information on one or more networks(显示网络详细)
 ls          List networks(网络列表)
 rm          Remove one or more networks(移除网络)

Run "docker network COMMAND --help" for more information on a command.

好,我们已经知道了网络的命令我们来试一试

2.创建一个网络

我们还是查看一下docker network create --help

Usage:    docker network create [OPTIONS] NETWORK

Create a network

Options:
     --aux-address value    Auxiliary IPv4 or IPv6 addresses used by Network driver (default map[])
 -d, --driver string        Driver to manage the Network (default "bridge")
     --gateway value        IPv4 or IPv6 Gateway for the master subnet (default [])
     --help                 Print usage
     --internal             Restrict external access to the network
     --ip-range value       Allocate container ip from a sub-range (default [])
     --ipam-driver string   IP Address Management Driver (default "default")
     --ipam-opt value       Set IPAM driver specific options (default map[])
     --ipv6                 Enable IPv6 networking
     --label value          Set metadata on a network (default [])
 -o, --opt value            Set driver specific options (default map[])
     --subnet value         Subnet in CIDR format that represents a network segment (default [])
let"s go
创建网络
#docker network create my-test-d-network
创建一个容器,加入这个网络
#docker run -d --network=my-test-d-network --name my-network-test-c centos


我们查看一下刚才创建的容器的网络配置

#docker inspect --format="{{json .NetworkSettings.Networks}}" my-network-test-c
 

好了,到这儿,我们去跟着官方实战一下吧,之前我build了一个已经安装好了nginx的容器,那么现在我将使用这个容器去配置。

Open a shell into the db application again and try the ping command. This time just use the container name web rather than the IP Address.
#使用容器的名称,而不使用地址
[root@0037207f115d home]# wget c-test-3
从一个网络中,移除一个容器
#docker network disconnect [network] [container]
整理一下思路
Step1:创建一个网络
我们取个名字叫test-network
[root]#docker network create test-network
Step2:查看创建网络的信息
[root]#docker network inspect test-network
Step3:创建2个容器
[root]#docker run -dit --name=test-1 centos
[root]#docker run -dit --name=test-2 centos
当然官方也有直接使用一个--network来配置网络的
Step4:把2个容器加入网络
我们先看看帮助
[root]# docker network connect --help
接下来我们加入2个容器
[root@localhost myDocker]# docker network connect test-network test-1
[root@localhost myDocker]# docker network connect test-network test-2

接下来我们再查看一下网络的详细
[root]#docker network inspect test-network
这样我们就确定了我们的容器已经加入了这个网络,我们看到2个容器在同一个网段里面,接下来我们去ping一下

Step5:测试网络

docker有一个这样得方法,去运行我们的容器

[root]#docker exec -it test-1 bash
[root]#docker exec -it test-2 bash
我们是用test-1 ping test-2
这里我们不是直接去使用ip地址,而是使用docker的名称

补充:端口

如果我们需要将容器的端口给外界访问,那么我们应该去指定一个端口映射,let"s go

在docker中有一个 port 的命令 ,我们去help一下
[root]#docker port --help
如图便是port的映射,我们去开放我们的test-1的80端口,随便映射到一个端口上。

But 好像port指令无法进行端口的配置,然后我们来到之前的一个文档中,看到在run一个镜像的时候,有一个指定开放端口,我们去看下

尴尬

我们查看#docker run -help

发布所有暴露端口随机端口。
 -P, --publish-all                 Publish all exposed ports to random ports
我们看官方的提示,可以使用p参数进行端口指定
 docker run -d -p 80:5000 training/webapp python app.py

我们去试一试,现在我去pull了一个nginx的镜像,接下来我们去创建一个开放了80端口的容器

[root]#docker run -d -p=9999:80 --name=test-5 nginx 
[root]#docker ps -a 


我们看到已经把centos本机的9999端口 映射到了容器test-5得80端口上,因为test-5上面的nginx已经启动了,并且在centos 9999得端口已经开放,我们使用ip去访问一下这个端口

这样就说明成功啦,是不是有点小激动。!!

网络篇结束,下面是我在学习途中遇到的一些问题而寻找的答案。

Docker run -d:err not running => http://blog.csdn.net/meegomee...
docker port set =>http://blog.csdn.net/libraryh...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26772.html

相关文章

  • docker笔记1----Get Docker

    摘要:资源官网资源资源版本的安装参考这个资源安装参考这个资源阿里云开发者平台资源阿里云镜像加速器资源中文版资源参考学习安装时间第步卸载旧版本的手工删除里面有图象容器卷和网络现在的名字叫第步安装第步安装官方的 资源01: Docker官网资源02: Docker Store资源03: Ubuntu版本的Docker安装(参考这个)资源04: Docker-compose安装(参考这个) 资源...

    bawn 评论0 收藏0
  • Docker集群搭建-Consul

    摘要:基础环境准备创建虚拟机安装系统主机说明开启并配置服务安装在阿里云服务器上搭建公司私有仓库搭建私有镜像仓库操作对象即阿里云服务器请参照这篇文章搭建私有仓库和批量上传镜像到私有仓库私有仓库的使用在客户端主机创建文件夹例如先将文件传到客户端主 基础环境准备 创建虚拟机; 安装Ubuntu 16.04 Server amd64系统; 主机说明;showImg(https://segmentf...

    leo108 评论0 收藏0
  • 代码级操作指南 | 如何在Docker Swarm中运行服务

    摘要:节点管理器将利用该声明该集群服务。在本示例当中,我们将部署一项服务。此标记用于告知公布端口作为该服务的可用端口。将此称为入口负载均衡。当外部系统调用某项服务时,接收节点会接受流量并利用提供的内部服务对其进行负载均衡。 最新版本Docker Engine v1.12中,包含了多项与Docker Swarm紧密相关的功能变更。在今天的文章中,数人云将和大家探讨如何利用Docker的Swar...

    Winer 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<