1. 概述

    1. docker network 命令
  2. 背景

    1. newwork 是 docker 的一种资源
    2. 经常会使用
      1. 需要整理命令

1. 引入

  1. 概述

    1. docker run 时, 将容器端口映射到宿主机
  2. 场景

    1. 启动 容器 时, 经常会使用命令

      1. 将容器的某个端口暴露
      2. 并且映射到 host 的某个端口上
      3. 这样可以通过 host 的 ip 和 端口, 直接访问
    2. 这个可能是我们对 docker 网络最初的认识

    3. 端口查看

      1. 记得用 命令 查看端口是否被占用, 以免出现不必要的麻烦

      2. 命令

        > netstat -utnlp
  3. 命令

    # 注意 -p
    > docker container run --name some-nginx -p 10000:80 -v website:/usr/share/nginx/html -d nginx
  4. 结果

    1. 容器启动成功
    2. host 的 10000 端口, 被映射到容器的 80 端口
      1. 可以用以下命令 来查看
        > docker ps
        > docker container port <container>

2. docker --link

  1. 概述

    1. 不对外暴露端口, 也可以让容器连接
  2. 场景

    1. 容器不想在 host 上暴露端口
    2. 容器希望与其他容器连接
  3. 准备

    1. 已经起来了一个容器, 比如之前的 some-nginx
  4. 命令

    # 在 ubuntu 里, 将 some-nginx 映射为了 nginx
    > docker container run --name ubuntu --link some-nginx:nginx -it ubuntu /bin/bash
  5. 结果

    1. 创建容器成功
    2. 尝试 ping nginx 或者 some-nginx 都能成功
      1. 如果没有 ping, ref 里有一个链接可以解决
  6. 其他

    1. 查看环境变量, 会发现很多 nginx 相关的变量

      > env | grep -i 'nginx'
    2. 查看 hosts, 也会有

      > cat /etc/hosts
    3. 对于这个 --link 原理的猜测

      1. 向系统写入 环境变量
      2. 向系统写入 hosts 文件
    4. 其实, 后面有个 url, 就是这么理解的

      1. 但是老实说, 我没看明白, 所以我暂时不敢下结论
  7. 问题

    1. 问题1: 如果两个容器需要互相 link, 怎么办?

      1. 问题

        1. 先启动的那个, 肯定没办法 link 后启动的
      2. 解决
        1. 生产中, 让不需要找其他服务器的组件先启动
        2. 尝试在启动后, 加入 link
          1. 貌似不可行
        3. 启动后直接修改 hosts 文件
          1. 通过某种方式推送, 让所有机器认识自己人

            1. 那 link 的意义, 其实不大
    2. 问题2: 容器的 宕机 和 重启, 是否会影响连接

      1. 这个还没试过
    3. 问题3: 是否还有其他方式, 管理 容器间 的网络交互

3. docker network 命令

  1. ls

    1. 概述

      1. 查看网络连接
    2. 命令

      > docker network ls
  2. inspect

    1. 概述

      1. 查看网络连接详情
    2. 命令

      > docker network inspect <network>
  3. connect

    1. 概述

      1. 容器连接网络
    2. 命令

      > docker network connect <network> <container>
  4. disconnect

    1. 概述

      1. 断开网络连接
    2. 命令

      # -f 表示强制
      # 成功后可以通过 inspect 查看
      > docker network disconnect [-f] <network> <container>
  5. create

    1. 概述

      1. 创建网络
    2. 命令

      # 不能重名
      > docker network create <network>
  6. rm

    1. 概述

      1. 删除网络连接
    2. 命令

      > docker network rm <network>
  7. prune

    1. 概述

      1. 删除没有使用的网络连接

        1. 删除前会有确认
    2. 命令

      > docker network prune

ps

  1. ref

    1. Docker 容器与容器云
    2. Docker 经典实例
    3. Docker 实战
    4. docker network
    5. 关于对docker run --link的理解
    6. Docker的ubuntu镜像安装的容器无ifconfig和ping命令的解决
  2. 虚拟化

    1. 服务器虚拟化
    2. 存储虚拟化
    3. 网络虚拟化
  3. 网络虚拟化

    1. 有想法的话, 可以去学学 ovs/ovn
  4. linux 相关的防火墙

    1. linux 的防护机制

      1. iptables
      2. firewalld
      3. selinux
      4. cgroup
    2. 这些东西, 貌似并不好弄
  5. 后续

    1. docker network 真正的原理

      1. docker 容器与容器云这本书里有写

        1. 网络

          1. 各种 network
        2. 容器
          1. sandbox
          2. endpoint
    2. linux 网桥

      1. bridge 类型的网络, 都是 linux 网桥

        1. 有空可以找找资料
        2. Linux 虚拟网络设备详解之 Bridge 网桥
      2. 网桥的本质, 是 虚拟交换机
        1. 这玩意是个大课题, 一句两句搞不定了

Docker - 命令 - docker network的更多相关文章

  1. 掌握Docker命令-Docker for Web Developers(4)

    1.管理镜像命令 获取镜像 docker push ubuntu:14:04 查看镜像列表 docker images 重命名image docker tag IMAGE-NAME NEW-IMAGE ...

  2. Docker - 命令 - docker volume

    概述 docker volume 命令 背景 docker 容器的存储, 通常需要独立于镜像 docker volume 就是负责这块的命令 1. 写在 docker volume 之前 概述 doc ...

  3. Docker - 命令 - docker container

    概述 整理 docker 容器的命令 1. 分类(25个) 查看 ls diff logs inspect port stats top 生命周期 pause prune create kill re ...

  4. Docker - 命令 - docker image

    概述 docker 客户端操控 镜像 1. 分类 概述 1 简单对 命令 做一些分类 分类 查看 ls inspect history 与 dockerhub 交互 pull push 导出 & ...

  5. Docker 0x08: Docker 命令

    目录 Docker 命令 run 与 start 区别 docker 进程相关命令 Restful API Docker 命令 docker命令容易混淆几个 run 与 start 区别 run: 会 ...

  6. 容器版jenkins安装并且实现使用宿主机docker命令,采用的是docker outside deocker,带jdk、添加maven、git

    docker版jekins使用宿主机docker命令 docker版jekins安装,实现CI/CD,也就是实现在容器里面使用宿主机docker命令,这样方式为:docker outside deoc ...

  7. Docker学习のDocker的简单应用

    一.常见基本docker命令 docker是在一个linux虚拟机上运行的(对于windows来说),打开Docker quickStart terminal,就连街上了docker的 daemon ...

  8. 【docker】docker network常用命令参数

    1.帮助命令 docker network --help 2.查看docker默认三种网络 docker network ls 3.创建自定义网络,如果不指定,默认创建类型为bridge类型 dock ...

  9. Docker 命令(二)

    Docker 入门 启动docker systemctl start docker 帮助命令 docker --help docker [Commands] --help   例:docker run ...

随机推荐

  1. centos7搭建天兔

    如果新系统尚未安装工具pip,可通过以下三步快速安装pip              1.  yum -y install epel-release               2.  yum -y ...

  2. [POI2010] GRA-The Minima Game - 贪心,dp,博弈论

    给出N个正整数,AB两个人轮流取数,A先取.每次可以取任意多个数,直到N个数都被取走.每次获得的得分为取的数中的最小值,A和B的策略都是尽可能使得自己的得分减去对手的得分更大.在这样的情况下,最终A的 ...

  3. 题解 CF171A 【Mysterious numbers - 1】

    又是愚人节题目qwq-- 说一下题意吧: 把第1个数翻转后加第二个数 具体思路: 1.定义变量,进行输入 int a,b; cin>>a>>b; 2.定义一个变量c,作为存储第 ...

  4. Unity网络通讯(一)获取计算机的MAC地址

    1 string GetMac() { string mac = ""; mac = GetMacAddressBySendARP(); return mac; } [DllImp ...

  5. AntDesign(React)学习-9 Dva model reducer实践

    今天肺炎增长数字依然吓人,感觉穿越到丧失片里了. 本节开始学习dva model使用,官网的讲解太文档化,对新手实践不太友好,自己简化了一个最简单的演示代码. 1.在src,models文件夹下创建u ...

  6. Codeforces Round #601 (Div. 2) B Fridge Lockers

    //题目要求的是每一个点最少要有两条边连接,所以可以先构成一个环.然后再把剩余的最短的边连接起来 #include<iostream> #include<algorithm> ...

  7. java web HttpServletRequest

    一.HttpServletRequest介绍 HttpServletRequest 对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,通过这个对象提供的方法,可以获得客户端请求的所有信息. ...

  8. 一点点学习PS--实战四

    本节实战,较为基础,主要是设置画布大小.字体的输入 1.工具使用 文字工具:直排文字工具,竖排文字 2.重点: (1)画影子: ----人物图层拷贝,CTRL+T,右键选择垂直翻转,拖拽出来,即可得到 ...

  9. 记录 shell学习过程(8)函数

    start () { echo "Apache start ...... [OK]" #return 0 可以写一个返回值,比如执行成功返回 0 } stop () { echo ...

  10. ORA-00904: "I_LEVEL": invalid identifier

    问题描述 ORA-00904: "I_LEVEL": invalid identifier 标示符无效