一、docker简介
- Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,
也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,
使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到一次封装,到处运行
。 - Linux 容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。
将应用运行在 Docker 容器上面,而 Docker 容器在任何操作系统上都是一致的,
这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好, 大大简化了操作。 Docker是解决运行环境和配置问题的软件容器 , 方便做持续集中并有助于整体发布的容器虚拟化技术
二、docker安装及基本用法
1.安装部署
1、配置软件仓库
vim /etc/yum.repos.d/docker.repo
\\\
[docker]
name=docker-ce
baseurl=http://172.25.51.250/docker/docker-ce
gpgcheck=0
///
#老办法,将安徽所需依赖性放在真机的apache发布目录
yum repolist
2、安装启用
yum install -y docker-ce
systemctl enable --now docker
3、解决警告
docker info #查看docker信息
sysctl -a | grep bridge-nf-call-iptables
vim /etc/sysctl.d/docker.conf
\\\
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
///
sysctl --system #重启
2.基本用法
docker load -i game2048.tar #传入镜像到本地docker引擎
docker images #查看镜像
docker run -d --name game -p 80:80 game2048 #部署运行容器
docker ps #查看容器
docker rm -f game #删除容器
docker load -i mario.tar
docker run -d --name mariogamme -p 80:8080 mario
三、docker镜像制作方式
1.交互式shell制作镜像
- ctr+d退出且关闭
- ctrl+p+q打入后台退出但不关闭
docker load -i busybox.tar #导入busybox镜像
docker run -it --name bbox busybox #运行容器
docker start bbox #启动
docker container attach bbox #重新进入
docker commit bbox demo:v1 #提交保存更改过的容器
docker images
docker history demo:v1
docker history busybox:latest
docker rmi demo:v1
docker ps
docker ps -a #显示所有容器
直接交互式界面生成的容器内无详细操作,安全性低
2.脚本制作镜像
通过docker脚本创建的镜像可以查看历史,推荐使用
mkdir /root/docker/
cd /root/docker/
vim /root/docker/Dockerfile
///
FROM busybox
RUN echo westos > testfile
RUN echo helloworld > jia
\\\
docker build -t demo:v2 . #执行当前目录内脚本创建v2镜像
docker images
docker history demo:v2 #查看镜像及历史内容,脚本内操作被记录
对比历史纪录,发现底层id一致,说明是共享底层资源(相同操作部分),减少空间占用
四、Dockerfile详解
- dockerfile常用指令
1、FROM
指定base镜像,如果本地不存在会从远程仓库下载。
2、MAINTAINER
设置镜像的作者,比如用户邮箱等。
3、COPY(拷贝本机文件到容器)