死记硬背一张图
镜像类似于我们是使用的虚拟机,创建虚拟机前需要下载的系统镜像文件,比如iso文件,img文件等等这样一些镜像文件。
容器可以比作正在运行中的一个虚拟机。
tar文件,tar文件类似于vm使用时的vmdk文件。通过load指令可以重新加载成镜像,再通过run指令就能运行起来一个正在运行的虚拟机了(容器)
Dockerfile是一个配置文件,很短,通过写入“如何构建的步骤”,来指定一个镜像是如何构建的。同构哦docker build指令可以将dockerdile构建成一个镜像。
仓库保存了很多第三方已经做好的镜像,比如ubuntu,nginx,mysql,tomcat镜像等等。pull下载,push上传。
下面实操,安利一个非常好的网站。
玩 Docker (play-with-docker.com)
Play with Docker(PWD)是由Marcos Liljedhal和Jonathan Leibiusky入侵并由Docker公司赞助的项目。
PWD是一个Docker游乐场,允许用户在几秒钟内运行Docker命令。它提供了在浏览器中拥有免费Alpine Linux虚拟机的体验,您可以在其中构建和运行Docker容器,
从仓库来拉取一个nginx镜像
docker pull nginx
等价于docker pull nginx:latest
latest
是版本,不指定版本就是最新版本。
docker images
查看本地有哪些镜像
docker run -d -p 80:80 nginx
运行容器,-d是在后台运行,-p是指定内外映射的端口,前面的是指本机的,后面是指容器内部的端口,nginx是容器名。
docker ps
查看正在运行的容器。
然后在网站的ip位置后面就会多出一个80端口,可以点击打开
docker exec -it ead22 bash
进去对容器进行修改,ead22是容器的id,这个完整的id虽然很长,但是不用全部输,只要能区分即可, -it是阻塞运行。
如下图,我们修改了nginx的默认页面
修改前:
修改后:
启动映射一个81端口镜像,然后删除:
docker rm -f bd
删除容器,-f强制删除,bd还是一个id
commit 将容器重新保存为一个镜像
docker commit ea m1
ea是正在运行的容器的id,m1是保存镜像之后的名字。
重新启动这个镜像然后,访问90端口,发现一样是hello,说明我们修改后的容器,保存为镜像,在重新运行会保存这个变化。
dockerfile方式
首先创建一个index.html文件,里面随便写”wai bu de wenjian“
第二步创建dockerfile:
FROM nginx
ADD ./ /usr/shara/ngnix/html/
FROM 指令是指定dockerfile创建的基础镜像是基于nginx镜像的。
ADD 指令是将当前目录下的所有文件拷贝到指定目录下
docker build -t m2 .
构建镜像,其中m2是起的镜像名,点是表示构建当前目录下的dockerfile文件。
docker run -d -p 100:80 m2
启动容器
docker sava m2 >1.tar
将名字为m2的镜像保存到1.tar文件里
ls
可已查看,看到多出一个文件1.tar
docker rmi m2
可以删除名为m2的镜像
docker load < 1.star1
将文件还原为镜像
dockedr run -d -p 88:80 --name myngix -v `pwd`:/usr/shara/nginx/html/ nginx
--name是指定容器NAME
-v是映射文件
nginx:1.13是镜像名字:版本