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服务。