Docker容器(三)—— 对Container(容器)的操作、Dockerfile的一个案例、Docker的网络

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/The_Reader/article/details/83659879

运行中对container操作

  1. 后台运行(-d命令为后台运行,--name为定义名称 )

  2.  操作容器
  3. 也可以在外部直接使用容器内部的东西
  4. 指定容器的名称
  5. 查看容器的详细信息
  6. 先看dockers日志
  7.  修改容器名字

Dockerfile案例

运行ubuntu直接安装stress

使用 256内存,debug输出

 

指定超出容器内存的任务

Docker的网络

busybox是一个非常小的linux, 让它执行一个语句。

 查看本机namespace

 

 添加一个namespace

 查看本机namespace默认是down的状态

变为up状态,显示为unknown

创建并查看link

 

添加veth-test1到test1的namespace

 

添加并查看veth-test2

 

为test1和test2分配IP地址

 

link并启动

 

两个namespace可以ping通了

bridge网络

可以看到test2和本机的网卡有veth对

 

 

安装brctl

 

查看本机的veth

 

查看本机网卡,docker0下有这2个veth

 

容器通信

首先启动一个容器

 

再创建一个有—link的容器 

 此时,可以用test6直接访问test5,类似于访问主机名

端口映射

1.运行一个nginx容器

2.查看桥接网络状态

3.容器内可以访问,容器外访问不到

4.停止并删除容器

5.重新创建容器,并指定端口映射

6.外界可以访问了

网络的nonehost

none网络:应用场景是安全性极高的情况

1.创建新的容器,使用none网络

 

2.查看none网络状态

 

3.外界访问不了,只有进去,127.0.0.1可以访问

 

host网络:

1.创建新的容器,使用host网络

 

2.查看host网络

3.进入容器,查看网络

多容器部署和应用

应用:flask做web服务,redis做自增

 

1.停止并删除之前的容器,删除image

3.运行redis容器

4.编写app.py,做web服务,中文就先别写了

5.编写Dockerfile

6.构建image

7.运行容器,并设置环境变量REDIS_HOST

8.进入容器并查看环境变量

9.多次访问5000端口,实现自增,此时外界无法访问

10.停止并删除之前容器,重启容器,指定暴露的端口,外界可以访问了

 多机器多容器通信

注意:多机的docker版本要一致

 

1.停止和删除之前的容器

2.将准备好的etcd分别放到2台机器的 /usr/local 下

3.2台机器,解压并进入目录

4.在第一台机器运行如下启动,在运行.txt中修改好粘贴进去

docker启动命令(node01)
	/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --cluster-store=etcd://192.168.20.250:2379 --cluster-advertise=192.168.20.250:2375&

docker启动命令(node02)
	/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --cluster-store=etcd://192.168.20.254:2379 --cluster-advertise=192.168.20.254:2375&

 注意更改IP地址

5. 在第二台机器运行如下启动,在运行.txt中修改好粘贴进去

6.2台机器都查询集群健康状态

7.2台机器都停止docker

8.node01启动docker

8.node02启动docker

9.创建overlay网络

10.查看网络

11.查看分布式数据库etcd存储的数据

12.在node01创建容器并运行

13.在node02创建容器并运行,容器名字不能与node01的冲突

 

猜你喜欢

转载自blog.csdn.net/The_Reader/article/details/83659879