docker容器部署及使用
一.docker简介及基本概念
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
二.docker安装及简单使用
1.docker安装
配置软件仓库
[docker]
name= docker
baseurl=http://172.25.3.250/docker-ce
gpgcheck=0
安装docker
yum install -y docker-ce.x86_64
systemctl enable --now docker
ip a #查看docker ip
查看docker信息,发现两个警告
docker info
设置net
sysctl -a | grep bridge-nf-call-iptables
cd /etc/sysctl.d/
ls
vim docker.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
重启:
sysctl --system
docker info
2.docker容器部署流程
传入镜像到本地docker引擎:
docker load -i mario.tar
查看镜像
docker images
部署运行:
docker run -d --name demo -p 80:8080 mario
查看容器
docker ps
删除容器
docker rm -f demo
注:ctrl p q 将容器打入后台,不退出
三.docker镜像制作方式
1.交互式shell制作镜像
导入镜像
docker load -i busybox.tar
创建一个新的容器并交互式运行
docker run -it --name demo2 busybox #demo2为容器名
显示容器,未发现busybox容器
docker ps
显示所有容器,包括未运行的,发现busybox
docker ps -a
启动未运行的容器demo2
docker start demo2
连接容器demo2,进入交互界面
docker container attach demo2
ctrl p q 打入后台,不退出
从当前容器创建一个新的镜像,容器内的修改都会被保存到新镜像
docker commit demo2 demo2:v1 #demo2为当前容器 demo2:v1 为镜像名称
docker images
查看镜像his,发现之前交互式界面创建文件操作没有被显示
docker history demo2:v1
直接交互式界面生成的容器内无详细操作,安全性低
镜像删除
2.docker脚本制作镜像
通过docker脚本创建的镜像可以查看历史,推荐使用
编写脚本:
mkdir /root/docker
cd /root/docker/
ls
vim Dockerfile
执行当前目录内操作创建v2镜像,注意一定要在脚本所在目录
docker build -t demo2:v2 . #执行当前目录内脚本创建v2镜像
查看镜像及历史内容,脚本内操作被记录
docker images
docker history demo2:v2
追加脚本内容,上传新镜像
docker images
docker history demo2:v3
对比历史纪录,发现底层id一致,说明是共享底层资源(相同操作部分),减少空间占用
注:脚本中每一句命令为一层,最高支持128层