zoukankan      html  css  js  c++  java
  • Docker网络及命令

    Docker常用命令

    docker version #查看版本
    docker search centos #搜索可用docker镜像
    docker images 查看当前docker所有镜像
    docker pull  centos 下载镜像
    cat centos.tar |docker import - centos6_newname #导入Docker 导入镜像
    docker export 容器id > centos6.tar #导出镜像
    docker run centos echo "hello world" #在Docker容器中运行hello world
    docker run centos yum install ntpdate #在容器中安装ntpdate的程序
    docker ps -l 命令获取最后一个容器的id,docker ps -a 查看所有的容器
    运行docker commit 提交刚修改的容器
    docker commit  313121 centos:v1
    docker run -i -t -d centos /bin/bash 在容器里启动一个/bin/bash shell环境,可以登录进入操作,其中-t tty,表示打开一个终端的意思,-i interactive,表示可以交互输入,-d表示在后台启动,以daemon方式启动。  
    docker  run  -d  centos:v1  /bin/bash 
    Docker  stop  id 关闭容器
    Docker  start  id 启动某个容器
    docker  rm  id 删除容器,docker  rmi  images删除镜像
    docker  run  -d  -p  80:80  -p 8022:22   centos:v2,解析:-p指定容器启动后docker上运行的端口映射及容器里运行的端口,80:80,第一个80表示docker系统上的80,第二个80表示docker虚拟机里面的端口。用户默认访问本机80端口,自动映射到容器里面的80端口。
    docker  exec   -it  id  /bin/bash 进入容器终端
    docker  exec  id ifconfig查看容器的IP地址;
    Docker  inspect id |grep -i ipaddr查看容器IP地址;
    Docker  exec  df -h查看容器的磁盘分区信息;

    批量启动多台nginx web服务

    for i in `seq  10 99 `  ;do docker run -itd -p 80$i:80 docker.io/nginx ;done

    Docker网络

    1)Host模式详解:

    默认Docker容器运行会分配独立的Network Namespace 隔离子系统,基于host模式,容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace,容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主主机的IP和端口。

    会共享物理主机的IP

    2)Container模式详解

    Container模式指定新创建的容器和已经存在的一个容器共享一个Network Namespace 而不是和宿主主机共享。

    即新创建的容器不会创建自己的网卡,配置自己的IP,而不是和一个指定的容器共享IP、端口。同样两个容器除了网络方面之外,其他的如文件系统、进程列表等还是隔离的。

    3)None模式详解

    None模式与其他的模式都不同,如果处理None模式,Docker容器拥有自己的Network Namespace,但是并不为Docker容器进行任何网络配置。也就是说该Docker容器没有网卡、IP、路由等信息,需要手工为Docker容器添加网卡、配置IP等,典型Pipework工具为Docker容器指定IP等信息;

    4)Bridge桥接模式

    Bridge 模式是Docker 默认的网络模式,该模式会为每一个容器分配Netwrok Namespace、设置IP、路由等配置 默认会将Docker容器连接到一个虚拟网桥交换机Docker0

    Docker Bridge 创建过程:

    1)首先宿主机上创建一对虚拟机网卡veth pair 设备,veth设备总是成对出现的,组成了一个数据的通道,数据从一个设备进入,就会从另外一个设备出来,veth设备常用来连接两个网络设备。

    2)Docker将veth pair 设备的一端放在新创建的容器中,并命令为eth0,然后将另一端放在宿主机中,以vethxxx这样类似的名字命名,并将整个网络设备加入到docker0网桥中,可以通过brctl show命令查看。

    3)从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。

    4)此时容器IP与宿主机能够通信,宿主机也可以访问容器中的IP地址,在Bridge模式下,连在同一网桥上的容器之间可以相互通信,同时容器IP,需要通过NAT将容器IP的port映射为宿主机的IP和port。

  • 相关阅读:
    Python selenium —— 一定要会用selenium的等待,三种等待方式解读
    python3 selenium 切换窗口的几种方法
    转:对UI自动化测试的一些感悟
    Docker
    【转】selenium之 定位以及切换frame
    selenium——键盘操作
    selenium——鼠标事件
    python 读取Excel表格方法
    springboot maven 更新jar包速度慢的问题
    Python3 读写utf-8文本文件
  • 原文地址:https://www.cnblogs.com/legenidongma/p/10665781.html
Copyright © 2011-2022 走看看