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. arm汇编笔记

    ARM汇编(非虫笔记) 1.ARM汇编的目的: 分析elf文件的需要. 2.原生程序生成过程. (1)预处理,编译器处理c代码中的预处理指令. gcc -E hello.c -o hello.i (2 ...

  2. SAM的应用及例题

    专门开一个帖子记录一下自己在学习SAM时做的题,并总结一下做法 1.LCS https://www.cnblogs.com/wenci/p/10432932.html 这道题是要求对两个字符串查找最长 ...

  3. Map.getOrDefault被坑小记与optional

    错误使用样例 map.getOrDefault("account","").toString(); 在运行几小时后,发现报错空指针:查看源码如下: defaul ...

  4. Python复制指定目录的各个子目录下的同名文件到指定文件夹并重命名

    Python复制指定目录的各个子目录下的同名文件到指定文件夹并重命名 #编码类型 #-*- coding: UTF-8 -*- #导入包 import os import shutil srcpath ...

  5. Docker的安装和操作(虚拟机+linux系统)

    1.简介 Docker是一个开源的应用容器引擎:是一个轻量级容器技术: Docker支持将软件编译成一个镜像:然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像: 运行中的这 ...

  6. centos7 防火墙的操作

    参考文章:http://blog.csdn.net/Joe68227597/article/details/75207859 http://www.cnblogs.com/cocoat/p/66054 ...

  7. 关于“教室派”APP的使用报告和相关建议

    教室派APP能够很好的解决学生查询各教室占用情况这一问题,使用起来非常方便.用户可根据需要选取星期来查询不同教学楼教室使用情况. 编辑课表是其附带功能,但通过使用发现手动编辑课表效率太低,建议开发者加 ...

  8. 0009 注册登录(第二步:获取短信接口access token)

    1 在GeneralTools目录下创建一个常量文件Constants.py 获取短信验证之前需要申请腾讯云短信服务. """ 腾讯云短信相关常量 "" ...

  9. [CF653F] Paper task - 后缀数组,线段树,vector

    [CF653F] Paper task Description 给定一个括号序列,统计合法的本质不同子串的个数. Solution 很容易想到,只要在传统统计本质不同子串的基础上修改一下即可. 考虑经 ...

  10. ubuntu19.04 安装mysql,没有初始密码,重设初始密码

    1.安装 在终端下输入 sudo apt-get install mysql-server mysql-client 进行安装,如果安装过程中弹出密码输入提示,则正常安装即可! 2.由于没有出现密码设 ...