-
Docker
常用命令
docker verision
--> 版本docker ps
—> 查看当前容器docker ps -a
—> 查看所有容器docker images
—> 查看当前所有镜像docker search nginx
—> 搜索可用的 docker 镜像docker pull nginx
—> 下载镜像容器docker run nginx echo "hello world"
—>在docker容器中运行"hello world"- docker run 命令有两个参数,一个是镜像名,一个是要在镜像中运行的命令。
docker run learn/tutorial apt-get install -y ping
- 基于 ubuntu 的镜像可以使用 apt-get 的命令来安装
docker commit
—> 保存对容器的修改docker run learn/ping ping www.baidu.com
docker inspect id
查看运行中镜像的详细状态docker login
—> 登录docker push yourname/imagesname
—> 提交镜像到自己的 Docker Hubdocker run -p 80:80 name/imagesname
—>通过 -p 参数对外指定 80 端口
Dockerfile
FROM ubuntu:14.04 // 指定镜像基于ubuntu 14.04构建 MAINTAINER saymagic saymagic@163.com // 创建镜像的用户 RUN apt-get update // shell RUN apt-get install -y nginx COPY ./www /usr/share/nginx/html // copy EXPOSE 80 // 暴露80端口 CMD ["nginx", "-g", "daemon off;"] // 运行容器时开启nginx
http://www.docker.org.cn/dockerppt/114.html
Docker网络配置
Dokcer 通过使用 Linux 桥接提供容器之间的通信,docker0 桥接接口的目的就是方便 Docker 管理。
- creates the docker0 bridge if not present
- # 如果 docker0 不存在则创建
- searches for an IP address range which doesn’t overlap with an existing route
- # 搜索一个与当前路由不冲突的 ip 段
- picks an IP in the selected range
- # 在确定的范围中选择 ip
- assigns this IP to the docker0 bridge
- # 绑定 ip 到 docker0
Docker 默认有四种网络模式
-
host 模式,使用 --net=host 指定。
- 如果启动容器的时候使用 host 模式,那么这个容器将不会获得一个独立的 Network Namespace,而是和宿主机共用一个 Network Namespace。容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的 IP 和端口。
- 容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。
-
container 模式,使用 --net=container:NAMEorID 指定。
- 这个模式指定新创建的容器和已经存在的一个容器共享一个 Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等。
-
none 模式,使用 --net=none 指定。
- 这个模式和前两个不同。在这种模式下,Docker 容器拥有自己的 Network Namespace,但是,并不为 Docker容器进行任何网络配置。也就是说,这个 Docker 容器没有网卡、IP、路由等信息。需要我们自己为 Docker 容器添加网卡、配置 IP 等。
-
bridge 模式,使用 --net=bridge 指定,默认设置。
bridge 模式是 Docker 默认的网络设置,此模式会为每一个容器分配 Network Namespace、设置 IP 等,并将一个主机上的 Docker 容器连接到一个虚拟网桥上。
当 Docker server 启动时,会在主机上创建一个名为 docker0 的虚拟网桥,此主机上启动的 Docker 容器会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。
-
接下来就要为容器分配 IP 了,Docker 会从 RFC1918 所定义的私有 IP 网段中,选择一个和宿主机不同的IP地址和子网分配给 docker0,连接到 docker0 的容器就从这个子网中选择一个未占用的 IP 使用。如一般 Docker 会使用 172.17.0.0/16 这个网段,并将 172.17.42.1/16 分配给 docker0 网桥
(在主机上使用 ifconfig 命令是可以看到 docker0 的,可以认为它是网桥的管理接口,在宿主机上作为一块虚拟网卡使用)
Docker基础总结
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 很多人可能在项目中已经使用docker很长时间,但是却很少有人知道docker的网络是如何实现的。我应该就算是很多...