英文网站建设口碑好,模板网站设计报价,网站建设经费方案,百度认证服务平台目录
DockerFile
构建步骤
基础知识
指令
实战#xff1a;构建自己的centos
第一步#xff1a;编写dockerfile文件
第二步#xff1a;构建镜像文件
docker网络
原理
功能
网络模式
host模式
container模式
none模式
bridge模式 DockerFile
dockerfile 是用来…目录
DockerFile
构建步骤
基础知识
指令
实战构建自己的centos
第一步编写dockerfile文件
第二步构建镜像文件
docker网络
原理
功能
网络模式
host模式
container模式
none模式
bridge模式 DockerFile
dockerfile 是用来构建docker镜像的文件是一个命令参数脚本
构建步骤 1、编写一个 dockerfile 文件 2、docker build 构建成为一个镜像 3、docker run 运行镜像 4、docker push 发布镜像DockerHub 、阿里云仓库
基础知识 1.每个保留关键字都是尽量大写字母 2.执行从上到下按顺序执行 3.#表示注释 4.每一个指令都会创建提交一个新的镜像层并提交 指令 实战构建自己的centos 通过编写Dockerfile文件来制作Centos镜像并在官方镜像的基础上添加vim和net-tools工具。首先在/home/dockfile 目录下新建文件mydockerfile-centos。然后使用上述指令编写该文件
第一步编写dockerfile文件 FROM centos:7 #基础镜像 MAINTAINER CQ1462568882qq.com #维护者信息 ENV MYPATH /usr/local #环境变量目录 k-v WORKDIR $MYPATH #工作目录 用$取k RUN yum -y install vim #执行构建命令 安装vim RUN yum -y install net-tools #执行构建命令 安装net-tools EXPOSE 80 #暴露端口 80 CMD echo $MYPATH #输出构建信息 mypath CMD echo ---end--- #输出信息 CMD /bin/bash #进入/bin/bash命令行 第二步构建镜像文件
构建镜像命令docker build -f dockerfile文件路径 -t 镜像名[:版本号] .这里有个小点. docer build -f mydockerfile-centos -t mycentos:0.1 . -t参数用来指定 image 文件的名字后面还可以用冒号指定标签。
如果不指定默认的标签就是latest。
最后的那个点表示 Dockerfile 文件所在的路径上例是当前路径所以是一个点。 docker网络
Docker网络是Docker平台中用于管理容器之间网络通信的组件。它提供了一种简单而灵活的方式来创建、管理和配置Docker容器的网络
原理 在宿主机虚拟一个Docker容器网桥(docker0)Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址称为Container-IP同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥这样容器之间就能够通过容器的Container-IP直接通信。 Docker网桥是宿主机虚拟出来的并不是真实存在的网络设备外部网络是无法寻址到的这也意味着外部网络无法通过直接Container-IP访问到容器。如果容器希望外部访问能够访问到可以通过映射容器端口到宿主主机端口映射即docker run创建容器时候通过 -p 或 -P 参数来启用访问容器的时候就通过[宿主机IP]:[容器端口]访问容器
功能 1.自动分配IP地址Docker能够为每个容器分配一个独立的IP地址使得容器之间可以通过IP地址进行通信。 2.默认网桥Docker在宿主机上创建一个名为docker0的网桥它会自动将容器连接到该网桥上从而使得容器之间可以通过网桥进行通信。 3.网络配置Docker允许用户自定义容器的网络配置包括指定网络类型、指定网络端口等。 4.网络插件Docker支持插件机制可以通过插件扩展网络功能。
网络模式
安装Docker时它会自动创建三个网络。bridge、 none 、host。
可以使用以下docker network ls命令列出这些网络 该bridge网络代表docker0所有Docker安装中存在的网络。除非你使用该docker run --network选项指定否则Docker守护程序默认将容器连接到此网络。
我们在使用docker run创建Docker容器时可以用 --net 选项指定容器的网络模式Docker可以有以下4种网络模式 host模式使用 --nethost 指定。 none模式使用 --netnone 指定。 bridge模式使用 --netbridge 指定默认设置。 container模式使用 --netcontainer:NAME_or_ID 指定 host模式
启动容器的时候使用host模式那么这个容器将不会获得一个独立的Network Namespace虚拟网络而是和宿主机共用一个Network Namespace虚拟网络。容器将不会虚拟出自己的网卡配置自己的IP等而是使用宿主机的IP和端口。但是容器的其他方面如文件系统、进程列表等还是和宿主机隔离的。
使用host模式的容器可以直接使用宿主机的IP地址与外界通信容器内部的服务端口也可以使用宿主机的端口不需要进行NAThost最大的优势就是网络性能比较好但是docker host上已经使用的端口就不能再用了网络的隔离性不好。 container模式 Docker的网络container模式是指将容器与另一个已经存在的容器共享同一个网络命名空间。这种模式下两个容器可以直接通过网络通信无需进行额外的网络配置。 使用container模式时Docker会创建一个新的网络命名空间并将其与目标容器共享。新容器内的网络接口会与目标容器的网络接口进行关联从而实现网络通信。 使用container模式可以方便地将多个容器连接在一起形成一个共享的网络环境。同时由于容器之间共享网络命名空间所以它们的网络性能和效率也得到了提高。 需要注意的是如果目标容器在关闭或崩溃时新容器也会失去网络连接。此外container模式不支持多主机之间的容器网络通信。 none模式 使用none模式Docker容器拥有自己的Network Namespace但是并不为Docker容器进行任何网络配置。也就是说这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等。 这种网络模式下容器只有lo回环网络没有其他网卡。none模式可以在容器创建时通过--networknone来指定。这种类型的网络没有办法联网封闭的网络能很好的保证容器的安全性。
bridge模式 Docker的网络bridge模式是一种默认的网络配置方式它会在Docker守护进程启动时自动创建一个名为docker0的网桥并将所有新创建的容器连接到该网桥上。 在bridge模式下每个容器都会分配一个独立的网络命名空间并拥有一个独立的IP地址。容器之间通过网桥进行通信通信数据会被自动转发。 使用bridge模式时Docker会为每个新创建的容器分配一个独立的Network Namespace并将容器与docker0网桥相连。容器内的网络接口会自动与网桥进行关联从而实现网络通信。 此外bridge模式还支持端口映射功能允许将容器内的网络端口映射到宿主机上的端口从而实现外部对容器内的应用程序进行访问。