首页 > 技术文章 > docker架构

yun9678 2020-06-26 16:43 原文

docker  daemon  docker守护进程的主机 也被成为docker server端   也是docker  host ;接受客户端请求是通过 http或https协议与客户端交互,客户端可以是远程主机的docker 客户端

      一个docker daemon 可以启动多个容器     容器启动时通过image 实现;如果本地没有,docker daemon会自动链接到docker  Registries,docker hub是docker  Registries中默认的Registries(是本地镜像仓库)

 

 

 

 harbor 港口         private Registry  是自建的, 私有仓库。

一个Registry由两部分组成;1Repository,一个镜像可以有多个Tag(标签)一个Tag只能有一个镜像;

2index  作用:维护用户账户、镜像的校验以及公共命名空间信息

相当于为Registry提供了一个完成用户认证等功能的检索接口;

云原生:是通过环境变量来获取数据的,不是通过更改配置文件来获取的

base inmage 是纯净版的最小化的基础镜像,是docker hub工作人员做的,

 

自动构建:新版本docker file文件推到git hub 上github变动会通知docker hub dockerhub自动构建镜像。

 

 

语法docker pull quay.io/coreos/flannel

docker拉取  指定服务器地址   、用户名     仓库名     后边可加冒号 标签或版本号

 

 

 

做镜像

docker  commit  基于那个容器做镜像  做完后后镜像属于那个仓库 :标签

 docker commit   -p  b1                        后边可省,就是没有存的仓库和标签

两种做镜像方式

docker tag  镜像ID    上传到dockerhub服务器上的账号/ 那个仓库  :标签

 

配置文件里Cmd 第是默认运行的命令 运行的方式

 如何更改cmd 生成新的镜像

docker commit -c 修改原镜像运行的命令   还可以加作者和邮箱地址

 docker commit -a “jin <jin@321.com>"  -c 'CMD ["/bin./httpd","-f”,“-h","/data/html"]‘-p b1 名字:标签

 -a  作者   更改CMD(命令)在bin下运行的httpd     -f 在前台 -h 

                      -p是处于暂停状态  b1是原先的容器

 

六种名称空间, UTS 主机名和域名,User   用户的  Mount 挂载文件系统的

IPC 进程加通讯的  PID 进程ID    Net 网络空间

 

查看网卡用 brctl show

安装命令是 yum install bridgr-utils

ip link show

 

网络IP走向方式

 

 

ip netns    list  列出网络名称空间    add name添加网络名称空间      set 设置网络名称空间

ip创建虚拟网卡对, ip  link add  name veth1.1 type  veth  peer name veth1.2

用set 把一个网络设备挪到名称空间去。ip link set  dev  veth1.2 netns r1 

ip  link show  查看

进入并查看网卡 ip netns exec r1  ifconfig -a

更改网卡名 ip netns exec r1 ip link set dev veth1.2 name eth0

激活 宿主机  ifconfig veth1.1 10.1.0.1/24 up

激活eth0    ip netns exec r1ifconfig  eth0 10.1.0.1/24 up

ping 测试

 

lo 可以联通联盟容器的网络空间;连通两个容器

 

 上图是可以不开启容器添加的配置文件内容的ip

查看内部80端口到外部映射的随机端口        iptables -t nat -v

 

 

 docker run --name b2 -- network container:b1 -it .. rm busybox

打开b2  容器   网卡共享b1容器 宕机删除  

如何改docker 默认的docker0 的网路属性  在/etc/docker/daemon.json文件

bip docker0 桥的IP地址和它的掩码,

mtu   还可以指定默认网关   最主要的是bip 

 

推荐阅读