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 ...
随机推荐
- 论文阅读笔记(五)【CVPR2012】:Large Scale Metric Learning from Equivalence Constraints
由于在读文献期间多次遇见KISSME,都引自这篇CVPR,所以详细学习一下. Introduction 度量学习在机器学习领域有很大作用,其中一类是马氏度量学习(Mahalanobis metric ...
- c++ char*和wchar*互相转换(转)
原文地址: 1.c++ char*和wchar*互相转换 2.C++ WINDOWS下 wchar_t *和char * 相互转化总结篇
- Xlrd模块读取Excel文件数据
Xlrd模块使用 excel文件样例:
- New Skateboard
Max wants to buy a new skateboard. He has calculated the amount of money that is needed to buy a new ...
- war文件—Web项目部署
war文件是什么? Web存档(war)文件包含Web应用程序的所有内容.它减少了传输文件所需要的时间. war文件的优点 节省时间:war文件将所有文件合并为一个单位. 所以在将文件从客户端传输到 ...
- OERR: ORA-32004 "obsolete or deprecated parameter(s) specified for %s instance"
Oracle 11gR2通过Memory创建动态参数文件后,通过SPFILE启动,提示 ORA-32004: obsolete or deprecated parameter(s) specified ...
- vue全局组件与局部组件
<!DOCTYPE html> <html> <head> <title></title> </head> <script ...
- Python 分发包中添加额外文件【新手必学】
在制作一个 Python 分发包时经常需要把一些文件添加到包中.最常见的例子是你希望通过 pip install命令安装 Python 包时会在 /etc/ 等目录下自动添加默认配置文件,由此可以 ...
- mysql(2):索引
索引基础 索引介绍 定义 索引是满足某种特定查找算法的数据结构.这些数据结构会以某种方式指向数据,从而实现高效查找. 优势 提高了查询速度 劣势 降低更新表的速度,因为更新表时,MySQL不仅要保存数 ...
- HTML的页面结构
HTML的页面结构 以下为命名的规范: header:标题头部区域的内容(用于页面或页面中的一块区域) footer:标记脚步区域的内容(用于整个页面或页面的一块区域) nav:导航类复杂内容 以上3 ...