Loading... 死记硬背一张图 **镜像**类似于我们是使用的虚拟机,创建虚拟机前需要下载的系统镜像文件,比如iso文件,img文件等等这样一些镜像文件。 **容器**可以比作正在运行中的一个虚拟机。 **tar**文件,tar文件类似于vm使用时的vmdk文件。通过load指令可以重新加载成镜像,再通过run指令就能运行起来一个正在运行的虚拟机了(容器) **Dockerfile**是一个配置文件,很短,通过写入“如何构建的步骤”,来指定一个镜像是如何构建的。同构哦docker build指令可以将dockerdile构建成一个镜像。 **仓库**保存了很多第三方已经做好的镜像,比如ubuntu,nginx,mysql,tomcat镜像等等。pull下载,push上传。 --- 下面实操,安利一个非常好的网站。 > [玩 Docker (play-with-docker.com)](https://labs.play-with-docker.com/) > > Play with Docker(PWD)是由[Marcos Liljedhal](https://www.twitter.com/marcosnils)和[Jonathan Leibiusky](https://www.twitter.com/xetorthio)入侵并由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: ```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是镜像名字:版本 最后修改:2024 年 12 月 14 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 5 如果觉得我的文章对你有用,请随意赞赏