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. vue.js 的cdn 链接的引用地址

    引用地址有两种一种完整版,一种压缩版效果是一样的 https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js https://cdn.bootcss.com ...

  2. dubbo整合SSM登录案例

    基于dubbo/zookeeper/SSM的分布式工程   一.项目结构

  3. 1052 Linked List Sorting (25分)

    题目 1. 思路 使用map存放所有的地址对 使用起始地址遍历map,结果存放在vector中 排序vector 输出vector 2. 注意点 开始的时候起始地址为-1 可能有些节点没有用到,注意排 ...

  4. 10.3.4参数绑定 bind

    Count_if算法,类似find_if,此函数接受一对迭代器,表示一个输入范围,还接受一个谓词,会对输入范围中的每个元素执行.Count_if返回一个计数值,表示谓词有多少次为真.    使用bin ...

  5. EF CodeFirst 一对一、一对多、多对多关系

    一对一关系 如图,无需专门指定,系统会默认在Person表中生成字段Pet_Id为Pet表的外键(一对一). Require:必要的(一对一)  Optional:可选的(一对零)  Principa ...

  6. 如何强制文件上传git仓库里

    1.首先在本地创建一个文件夹里写入一个txt文件 2.然后复制你仓库的地址 3.平时正常操作都是这样上传不上 4.没关系我们使用强制上传 代码是 git push -f “你的仓库地址”   mast ...

  7. 计数器IP核

    Quartus II提供的LPM_couter IP核的使用 FPGA设计方式: 原理图,Verilog HDL设计方式,IP核输入方式 创建IP核 点击TOOLS—IP catalog-libray ...

  8. 【译】PHP 内核 — 字符串管理

    [译]PHP 内核 - 字符串管理 (Strings management: zend_string 译文) 原文地址:http://www.phpinternalsbook.com/php7/int ...

  9. jmeter+ant+jenkins接口自动化测试框架

    大致思路:Jmeter可以做接口测试,也能做压力测试,而且是开源软件:Ant是基于Java的构建工具,完成脚本执行并收集结果生成报告,可以跨平台,Jenkins是持续集成工具.将这三者结合起来可以搭建 ...

  10. LCA 倍增算法模板

    . #include <cstring> #include <cstdio> #include <cstdlib> #include <algorithm&g ...