linux容器虚拟化及管理,虚拟化技术—docker容器—管理篇

一、我们怎么更方便的进去已经start的容器呢?

nsenter:可以通过这个命令进去docker的p_w_picpaths里

首先获取一个容器的id:

docker inspect --format " ``.`State`.`Pid`" centos_with_nettools 获取一个id

10592

811bcd2fa20dc79981669f48a81d41b0.png

nsenter --target 10592 --mount --yts --ipc --net

a069cfef7a6d76ffb9f0d2715d267cd3.png

这样就进去了,当然这样很麻烦,所以可以写一个脚本:

cat in.sh

CNAME=$1

CPID=$(docker inspect --format " ``.`State`.`Pid`" $CNAME)

nsenter --target $CPID --mount --uts --ipc --net

设置权限:

chmod +x in.sh

使用:./in.sh centos_with_nettools

二、查看docker网络

brctl show

查看docker的网桥

cfc36d2ba42d076d3ef08625ede736f3.png

iptables -t nat -L -n

d0967bc0d60b27f2ae4bb7a82734dc1c.png

三、容器创建好了,怎么对外提供服务呢?

容器都是独立的,资源隔离的,一个容器最常见的是只跑一个服务,但凡服务都都是有端口的,那么我们就要把容器内的端口映射到本机的端口上,然后对外提供服务

第一种:随机映射

docker run -P -d --name nginx1 nginx

第二种:指定映射

docker run -d -p 91:80 --name nginx2 nginx

750658bcd4b61e87b80514e9a2fdf0c2.png

四、数据卷

什么是数据卷?

当然是存放数据的,那么我们用来做什么?打个比方,一个网站后端不可能只有一台服务器,那么多台服务器怎么保证一些需要的数据一致呢?这里就要用到数据卷了,一个容器只用来保存数据,其他后台服务器都到这个容器里取数据,这样就可以保证数据一致性了。

先创建一个容器:

docker run -it --name volume-test1 -h nginx -v /data nginx

docker ps -l查看一下:

0d36b29b46e714ab499905220a07b9d7.png

docker inspect -f "``.`Volumes`" volume-test1查看卷:

b866b61d58646104de31617135c1db5c.png

cbfd572554ef255a323807e8c0632eef.png

挂载:

docker run -it --name volume-test2 -h nginx1 -v /opt:/opt centos

注意:/opt后面不能有/号

docker run -it --name volume-test2 -h nginx1 -v /opt:/opt:ro centos

ro:表示在容器里不能写

这时创建新容器时就可以指定了

新建容器,数据卷从volume-test1上取

docker run -it --name volume-test34 --volumes-from volume-test1 centos

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值