linux中dockers容器技术介绍?
linux中Dockers容器技术其实就是管理熊雄起的引擎,是应用打包部署平台,可以为数据软件的应用提供基础。
什么是docker?Docker就好比传统的货运集装箱
Docker是管理容器的引擎
Docker为应用打包 部署平台,而非单纯的虚拟化技术
SaaS(app,云盘,微店,网站) PaaS(redis,nysql,nginx)是基于Docker的云平台
VM VS Container

关于虚拟机
virsh 命令管理
virt_manager 图形化管理
libvirtd 一个管理接口
qemu-kvm(cpu/mem) 完全虚拟化
如果停掉libvirtd
systemctl stop libvirtd
1
1
管理化命令不能工作,但是虚拟机依然存在,依然工作
容器
容器和物理机共享内核和一些重要的文件系统
比虚拟机更小,更轻
传统虚拟机和容器技术对比

容器是如何工作的

创建一个容器

yum install wget -y
cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1
2
3
1
2
3

要解决依赖性
在阿里云平台下载
然后下载的包和rhel7.6 yum源里的包一起解决依赖性
yum install docker-ce container-selinux-2.77-1.el7.noarch.rpm -y
systemctl start docker
1
2
1
2
注意:docker启动前关闭防火墙和关闭selinux
docker info 查看容器信息
1
1
发现有两个警告
解决:
sysctl -a | grep bridge-nf-call-iptables
vim /etc/sysctl.d/bridge.conf
1
2
1
2
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
sysctl --system 生效
1
2
3
1
2
3
所有的容器数据都在/var/lib/docker里面

如果想要用普通用户做docker需要给这个文件给权限
yum install bash-* -y 为了table 补齐命令
1
1
用容器部署一个nginx服务
一般拉取太慢,设置一个加速器

cd /etc/docker/
vim daemon.json
systemctl daemon-reload
systemctl restart docker
1
2
3
4
1
2
3
4
docker search nginx 寻找镜像
docker pull nginx 拉取镜像(一般以服务名的是官方提供的)
docker run -d --name nginx nginx 部署容器
docker ps
1
2
3
4
1
2
3
4

docker inspect nginx 查看nginx容器信息
1
1

用ip addr show 命令查看桥接到docker0
yum install bridge-utils 桥接命令
brctl show
1
2
1
2

nginx部署成功

此时,nginx只能内部访问
如果需要外部访问,则删掉原nginx容器,用端口映射部署nginx
-d : 打入后台
-p 80:80 : 80映射80端口
docker run -d --name nginx -p 80:80 nginx
1
1
nginx history nginx:latest 查看nginx镜像信息
iptables -t nat -nL
1
2
1
2
访问本机转发到172.17.0.2:80上去

用ps ax 或 top 或 netstat -antlp 查看 docker就是个进程
网页访问虚拟机ip 可以看到nginx服务。