ubuntu系统安装docker镜像三——用Dockerfile

2018-03-07  本文已影响625人  螃蟹和骆驼先生Yvan

首先第一步创建一个Docker Hub帐号:

链接:https://hub.docker.com/
注册之后你可以在服务器通过docker:
$docker login

创建初始Dockerfile,执行命令
$touch Dockerfile
$vi Dockerfile
文件内部输出:


image.png

这里解释:

  1. “#”号代表的意思注释
  2. 在前面的Dockerfile的第一条指令都应该是FROM。FROM指令指定一个已经存在的镜像,
    后续指令都将基于该镜像进行,这个镜像被称为基础镜像,所以我们基础镜像是ubuntu14.04
  3. MAINTAINER指令,这条指令是告诉docker该镜像的作者是谁,以及作者的电子邮件。
    解释3条run命令是安装nginx包,之后创建一个/usr/local/nginx/html/index.html文件,
    4 .每条run指令都会创建一个新的镜像层,如果该指令执行成功,就会将镜像层提交,之后继续执行Dockerfile中的下一条指令
  4. EXPOSE指令 这条指令告诉Docker该容器内的应用程序将会使用容器的指定端口,docker不会自动开端口,需要我们自己指定打开的端口。

现在可以基于Dockerfile构建新镜像
执行docker build命令时,Dockerfile中的所有指令都会被执行并且提交,并且该命令成功结束返回一个新的镜像,-t后面代表仓库和名称。
$docker build -t="tool/qian" .


image.png
image.png

当然你的git仓库的根目录下存在Dockerfile文件。
你可以用一下命令指定


image.png

docker在构建镜像时候,会做一件有趣的事,就是他会把提交的镜像看作缓存并作为新的开始点,怎么说假如你现在要修改镜像第3步,你前面都不做修改,docker不会在重新构建前面的步骤,直接取缓存的,只改变你要改变的部分为起始点。
当然有的时候你缓存前面3步以上,docker不会再次刷新apt包,我们可以通过忽略缓存,达到刷新的效果docker build的 --no-cache标志,
$docker build --no-cache -t="tool/qian" .
当然这样生成的效果是这样的


image.png

说说上面那个镜像,又名虚悬镜像,由于新旧镜像同名,旧镜像名称被取消,从而出现仓库名、标签均为 <none> 的镜像。这类无标签镜像也被称为 虚悬镜像(dangling image) ,可以用下面的命令专门显示这类镜像:
$docker image ls -f dangling=true
一般来说,虚悬镜像已经失去了存在的价值,是可以随意删除的,可以用下面的命令删除
$ docker image prune -f

先查看镜像:
$docker images tool/qian

如果想具体了解该镜像可以
$docker history e14e64c3e640


image.png

镜像我们也成功生成了,现在要看看从新镜像启动容器
$docker run -d -p 80 --name qian tool/qian \ nginx -g "daemon off;"


image.png

上传镜像到我们的github上吧。
其实很简单:
git push 你的镜像名字
这里注意


image.png

这个必须是你的用户名否则上传不上去,
所以你要改名字命令 docker tag 如图:


image.png
给你们看看上传成功的:
image.png

当然也可以自动构建,自动构建我就不说了,感觉比较太深了

当然你上传了镜像不是你想要的如何删除上传上去的镜像
你需要登录docker hub后使用Delete repository来操作
很简单,记住删除是不可逆转的,一但删除就永久性删除

删除本地镜像不用说吧:
$docker rmi yvanqian/qian

上一篇下一篇

猜你喜欢

热点阅读