Docker - 命令 - docker network
概述
- docker network 命令
背景
- newwork 是 docker 的一种资源
- 经常会使用
- 需要整理命令
1. 引入
概述
- docker run 时, 将容器端口映射到宿主机
场景
启动 容器 时, 经常会使用命令
- 将容器的某个端口暴露
- 并且映射到 host 的某个端口上
- 这样可以通过 host 的 ip 和 端口, 直接访问
这个可能是我们对 docker 网络最初的认识
端口查看
记得用 命令 查看端口是否被占用, 以免出现不必要的麻烦
命令
> netstat -utnlp
命令
# 注意 -p
> docker container run --name some-nginx -p 10000:80 -v website:/usr/share/nginx/html -d nginx
结果
- 容器启动成功
- host 的 10000 端口, 被映射到容器的 80 端口
- 可以用以下命令 来查看
> docker ps
> docker container port <container>
- 可以用以下命令 来查看
2. docker --link
概述
- 不对外暴露端口, 也可以让容器连接
场景
- 容器不想在 host 上暴露端口
- 容器希望与其他容器连接
准备
- 已经起来了一个容器, 比如之前的 some-nginx
命令
# 在 ubuntu 里, 将 some-nginx 映射为了 nginx
> docker container run --name ubuntu --link some-nginx:nginx -it ubuntu /bin/bash
结果
- 创建容器成功
- 尝试 ping nginx 或者 some-nginx 都能成功
- 如果没有 ping, ref 里有一个链接可以解决
其他
查看环境变量, 会发现很多 nginx 相关的变量
> env | grep -i 'nginx'
查看 hosts, 也会有
> cat /etc/hosts
对于这个 --link 原理的猜测
- 向系统写入 环境变量
- 向系统写入 hosts 文件
其实, 后面有个 url, 就是这么理解的
- 但是老实说, 我没看明白, 所以我暂时不敢下结论
问题
问题1: 如果两个容器需要互相 link, 怎么办?
- 问题
- 先启动的那个, 肯定没办法 link 后启动的
- 解决
- 生产中, 让不需要找其他服务器的组件先启动
- 尝试在启动后, 加入 link
- 貌似不可行
- 启动后直接修改 hosts 文件
- 通过某种方式推送, 让所有机器认识自己人
- 那 link 的意义, 其实不大
- 通过某种方式推送, 让所有机器认识自己人
- 问题
问题2: 容器的 宕机 和 重启, 是否会影响连接
- 这个还没试过
问题3: 是否还有其他方式, 管理 容器间 的网络交互
3. docker network 命令
ls
概述
- 查看网络连接
命令
> docker network ls
inspect
概述
- 查看网络连接详情
命令
> docker network inspect <network>
connect
概述
- 容器连接网络
命令
> docker network connect <network> <container>
disconnect
概述
- 断开网络连接
命令
# -f 表示强制
# 成功后可以通过 inspect 查看
> docker network disconnect [-f] <network> <container>
create
概述
- 创建网络
命令
# 不能重名
> docker network create <network>
rm
概述
- 删除网络连接
命令
> docker network rm <network>
prune
概述
- 删除没有使用的网络连接
- 删除前会有确认
- 删除没有使用的网络连接
命令
> docker network prune
ps
ref
- Docker 容器与容器云
- Docker 经典实例
- Docker 实战
- docker network
- 关于对docker run --link的理解
- Docker的ubuntu镜像安装的容器无ifconfig和ping命令的解决
虚拟化
- 服务器虚拟化
- 存储虚拟化
- 网络虚拟化
网络虚拟化
- 有想法的话, 可以去学学 ovs/ovn
linux 相关的防火墙
- linux 的防护机制
- iptables
- firewalld
- selinux
- cgroup
- 这些东西, 貌似并不好弄
- linux 的防护机制
后续
docker network 真正的原理
- docker 容器与容器云这本书里有写
- 网络
- 各种 network
- 容器
- sandbox
- endpoint
- 网络
- docker 容器与容器云这本书里有写
linux 网桥
- bridge 类型的网络, 都是 linux 网桥
- 有空可以找找资料
- Linux 虚拟网络设备详解之 Bridge 网桥
- 网桥的本质, 是 虚拟交换机
- 这玩意是个大课题, 一句两句搞不定了
- bridge 类型的网络, 都是 linux 网桥
Docker - 命令 - docker network的更多相关文章
- 掌握Docker命令-Docker for Web Developers(4)
1.管理镜像命令 获取镜像 docker push ubuntu:14:04 查看镜像列表 docker images 重命名image docker tag IMAGE-NAME NEW-IMAGE ...
- Docker - 命令 - docker volume
概述 docker volume 命令 背景 docker 容器的存储, 通常需要独立于镜像 docker volume 就是负责这块的命令 1. 写在 docker volume 之前 概述 doc ...
- Docker - 命令 - docker container
概述 整理 docker 容器的命令 1. 分类(25个) 查看 ls diff logs inspect port stats top 生命周期 pause prune create kill re ...
- Docker - 命令 - docker image
概述 docker 客户端操控 镜像 1. 分类 概述 1 简单对 命令 做一些分类 分类 查看 ls inspect history 与 dockerhub 交互 pull push 导出 & ...
- Docker 0x08: Docker 命令
目录 Docker 命令 run 与 start 区别 docker 进程相关命令 Restful API Docker 命令 docker命令容易混淆几个 run 与 start 区别 run: 会 ...
- 容器版jenkins安装并且实现使用宿主机docker命令,采用的是docker outside deocker,带jdk、添加maven、git
docker版jekins使用宿主机docker命令 docker版jekins安装,实现CI/CD,也就是实现在容器里面使用宿主机docker命令,这样方式为:docker outside deoc ...
- Docker学习のDocker的简单应用
一.常见基本docker命令 docker是在一个linux虚拟机上运行的(对于windows来说),打开Docker quickStart terminal,就连街上了docker的 daemon ...
- 【docker】docker network常用命令参数
1.帮助命令 docker network --help 2.查看docker默认三种网络 docker network ls 3.创建自定义网络,如果不指定,默认创建类型为bridge类型 dock ...
- Docker 命令(二)
Docker 入门 启动docker systemctl start docker 帮助命令 docker --help docker [Commands] --help 例:docker run ...
随机推荐
- centos7搭建天兔
如果新系统尚未安装工具pip,可通过以下三步快速安装pip 1. yum -y install epel-release 2. yum -y ...
- [POI2010] GRA-The Minima Game - 贪心,dp,博弈论
给出N个正整数,AB两个人轮流取数,A先取.每次可以取任意多个数,直到N个数都被取走.每次获得的得分为取的数中的最小值,A和B的策略都是尽可能使得自己的得分减去对手的得分更大.在这样的情况下,最终A的 ...
- 题解 CF171A 【Mysterious numbers - 1】
又是愚人节题目qwq-- 说一下题意吧: 把第1个数翻转后加第二个数 具体思路: 1.定义变量,进行输入 int a,b; cin>>a>>b; 2.定义一个变量c,作为存储第 ...
- Unity网络通讯(一)获取计算机的MAC地址
1 string GetMac() { string mac = ""; mac = GetMacAddressBySendARP(); return mac; } [DllImp ...
- AntDesign(React)学习-9 Dva model reducer实践
今天肺炎增长数字依然吓人,感觉穿越到丧失片里了. 本节开始学习dva model使用,官网的讲解太文档化,对新手实践不太友好,自己简化了一个最简单的演示代码. 1.在src,models文件夹下创建u ...
- Codeforces Round #601 (Div. 2) B Fridge Lockers
//题目要求的是每一个点最少要有两条边连接,所以可以先构成一个环.然后再把剩余的最短的边连接起来 #include<iostream> #include<algorithm> ...
- java web HttpServletRequest
一.HttpServletRequest介绍 HttpServletRequest 对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,通过这个对象提供的方法,可以获得客户端请求的所有信息. ...
- 一点点学习PS--实战四
本节实战,较为基础,主要是设置画布大小.字体的输入 1.工具使用 文字工具:直排文字工具,竖排文字 2.重点: (1)画影子: ----人物图层拷贝,CTRL+T,右键选择垂直翻转,拖拽出来,即可得到 ...
- 记录 shell学习过程(8)函数
start () { echo "Apache start ...... [OK]" #return 0 可以写一个返回值,比如执行成功返回 0 } stop () { echo ...
- ORA-00904: "I_LEVEL": invalid identifier
问题描述 ORA-00904: "I_LEVEL": invalid identifier 标示符无效