doucker进阶
1、启动容器要限制容器使用CPU和内存资源:–cpu-shares 30 【限制使用CPU】
2、查看docker的运行进程:docker top
- iaas:我只购买了电脑包含cpu、显卡、内存
- paas:不仅购买了电脑、还给我装好了操作系统、.net等中间件
- saas:不仅装好了操作系统,游戏都给我装好了。
配置 域名和IP的映射关系到hosts文件
/etc/hostname #下面有一个sc-docker文件
hostnamectl set-hostname sc-docker-1 #修改文件名:将sc-docker改为sc-docker-1
docker run -d -name xie1
docker run -d --name xie2 --link xie1:redis nginx
--link:将xie1这个容器起一个别名叫redis,目的是在xie2这个容器的/etc/hosts文件里面
docker底层是如何实现的?
docker就是基于Linux内核的namespace特性来实现的,
centos8不用安装docker,默认安装的是podman-docker软件!
如果安装了,会报以下错:
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
解决方法:
1.卸载podman软件
yum remove docker
2.下载docker-ce源
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
3.安装docker-ce
yum install docker-ce -y
docker 网络
docker rm -f $(docker ps -aq) #删除所有容器
docker rmi -f $(docker images -aq) #删除所有镜像
docker ps
lo:本机回环地址
eth0:阿里云的内网地址
docker0:docker生成的网卡(相当于路由器)
一般家里的路由器的IP是:192.168.01 我们的手机连WiFi则会随机得到一个IP:192.168.0.12等
为什么Linux可以ping通容器内部?
我们发现这个容器带来的网卡,都是一对一对的 (–net 可以指定网络,默认是走docker 0)
#evth-pair 就是一对的虚拟设备接口,它们都是成对出现,
docker 使用的是Linux的桥接,宿主机中是一个Docker容器的网桥(docker0)大概是65535个
docker中所有的网络接口都是虚拟的,虚拟的转发速率高!
只要容器删除,对应网桥一对就没了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NOJ7zROL-1635157846633)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210816224636381.png)]
–link
查看网络配置连接
docker network --help #显示所有的网卡信息
docker network ls #查看所有的docker网卡
docker network rm 名字 #删除某个网卡
docker network inspect id号 #可以看很多东西
curl ip地址 #查看详细信息
/etc/hosts :配置绑定的,映射
127.0.01 www.baidu.com
网络模式
bridge:桥接docker大桥【当.02与.03不能通信的时候用.01在中间搭桥(相当于路由器)】【默认的,自己创建也用这个】
none:不配置网络【一般不用】
host:和宿主共享网络
container:容器内网络连通【用的少!局限很大)
nemaspace【网络命名空间】:是内核的一个功能,用来给进程隔离一系列系统资源(视图隔离)
lxc:Linux container:基于容器的操作系统层面的虚拟化技术
cgroup:control Group :对资源进行限制(CPU,磁盘,内存)
测试:
自定义一个网络:创建一个网络(桥接的),搭建一个网络