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 ...
随机推荐
- arm汇编笔记
ARM汇编(非虫笔记) 1.ARM汇编的目的: 分析elf文件的需要. 2.原生程序生成过程. (1)预处理,编译器处理c代码中的预处理指令. gcc -E hello.c -o hello.i (2 ...
- SAM的应用及例题
专门开一个帖子记录一下自己在学习SAM时做的题,并总结一下做法 1.LCS https://www.cnblogs.com/wenci/p/10432932.html 这道题是要求对两个字符串查找最长 ...
- Map.getOrDefault被坑小记与optional
错误使用样例 map.getOrDefault("account","").toString(); 在运行几小时后,发现报错空指针:查看源码如下: defaul ...
- Python复制指定目录的各个子目录下的同名文件到指定文件夹并重命名
Python复制指定目录的各个子目录下的同名文件到指定文件夹并重命名 #编码类型 #-*- coding: UTF-8 -*- #导入包 import os import shutil srcpath ...
- Docker的安装和操作(虚拟机+linux系统)
1.简介 Docker是一个开源的应用容器引擎:是一个轻量级容器技术: Docker支持将软件编译成一个镜像:然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像: 运行中的这 ...
- centos7 防火墙的操作
参考文章:http://blog.csdn.net/Joe68227597/article/details/75207859 http://www.cnblogs.com/cocoat/p/66054 ...
- 关于“教室派”APP的使用报告和相关建议
教室派APP能够很好的解决学生查询各教室占用情况这一问题,使用起来非常方便.用户可根据需要选取星期来查询不同教学楼教室使用情况. 编辑课表是其附带功能,但通过使用发现手动编辑课表效率太低,建议开发者加 ...
- 0009 注册登录(第二步:获取短信接口access token)
1 在GeneralTools目录下创建一个常量文件Constants.py 获取短信验证之前需要申请腾讯云短信服务. """ 腾讯云短信相关常量 "" ...
- [CF653F] Paper task - 后缀数组,线段树,vector
[CF653F] Paper task Description 给定一个括号序列,统计合法的本质不同子串的个数. Solution 很容易想到,只要在传统统计本质不同子串的基础上修改一下即可. 考虑经 ...
- ubuntu19.04 安装mysql,没有初始密码,重设初始密码
1.安装 在终端下输入 sudo apt-get install mysql-server mysql-client 进行安装,如果安装过程中弹出密码输入提示,则正常安装即可! 2.由于没有出现密码设 ...