Dockerfile使用方法

DockerDockerfile详解http://my.oschina.net/2xixi/blog/516951#OSC_h4_7

官方Dockerfile列表:https://github.com/CentOS/CentOS-Dockerfiles

wmarinho/postgresql-v9.3-centoshttps://registry.hub.docker.com/u/wmarinho/postgresql-v9.3-centos/dockerfile/

原文:http://www.blogjava.net/yongboy/archive/2015/03/05/407643.html

编写一个Dockerfile

所有环境,同第一篇文字。在ubuntu下安装好vim之后(吐槽一下,ubuntu系统内置vi命令十分难用,只好求助于vim):

sudovimDockerfile

编辑一个Dockerfile文件了,下面就是具体文件内容:

#VERSION0.0.1

#默认ubuntuserver长期支持版本,当前是12.04

FROMubuntu

#签名啦

MAINTAINERyongboy"yongboy@gmail.com"

#更新源,安装sshserver

RUNecho"debhttp://archive.ubuntu.com/ubuntuprecisemainuniverse">/etc/apt/sources.list

RUNapt-getupdate

RUNapt-getinstall-yopenssh-server

RUNmkdir-p/var/run/sshd

#设置rootssh远程登录密码为123456

RUNecho"root:123456"|chpasswd

#添加orachejava7源,一次性安装vim,wget,curl,java7,tomcat7等必备软件

RUNapt-getinstallpython-software-properties

RUNadd-apt-repositoryppa:webupd8team/java

RUNapt-getupdate

RUNapt-getinstall-yvimwgetcurloracle-java7-installertomcat7

#设置JAVA_HOME环境变量

RUNupdate-alternatives--displayjava

RUNecho"JAVA_HOME=/usr/lib/jvm/java-7-oracle">>/etc/environment

RUNecho"JAVA_HOME=/usr/lib/jvm/java-7-oracle">>/etc/default/tomcat7

#容器需要开放SSH22端口

EXPOSE22

#容器需要开放Tomcat8080端口

EXPOSE8080

#设置Tomcat7初始化运行,SSH终端服务器作为后台运行

ENTRYPOINTservicetomcat7start&&/usr/sbin/sshd-D

构建镜像

脚本写好了,需要转换成镜像:

docker build -t yongboy/java7 .

-t:为构建的镜像制定一个标签,便于记忆/索引等

.:指定Dockerfile文件在当前目录下

网速不太好,会等待很长时间。很多操作可能需要科学上网,逼得我只能一直挂着VPN,方能畅通无阻。

构建镜像完成之后,看看运行效果

docker run -d -p 22 -p 8080:8080 yongboy/java7

在运行命令中,还得需要显式指定-p22-p8080:8080,否则在Docker0.8.1版本中不会主动映射到宿主机上。据悉在Docker0.4.8版本时,就不担心这个问题。或者,您要有好的方式,不妨告知于我,谢谢。

在Dockerfile中,若没有使用ENTRYPOINT/CMD指令,若运行多个命令,可以这样做:

docker run -d -p 22 -p 8080 yongboy/java7 /bin/sh -c "service tomcat7 start && /usr/sbin/sshd -D"

提交/保存镜像

创建好的镜像,可以保存到索引仓库中,便于下次使用(当然,我们直接共享Dockerfile,是最简单的事情,:))),但毕竟镜像可以做到开箱即用。

https://index.docker.io/注册一个账号,例如yongboy

构建镜像

dockerbuild-tyongboy/java7.

上面已经构建OK的话,可省略此步。

登陆

dockerlogin

提交到Docker索引仓库

dockerpushyongboy/java7

现在可以起来喝杯热水,出去溜达会,也不一定能够上传完毕,那叫一个慢啊!

上传OK的话,可以得到类似地址:https://index.docker.io/u/yongboy/java7/

如何使用镜像

docker pull yongboy/java7

剩下的步骤,就很简单了。

小结

有关Dockerfile的进阶阅读:

http://www.docker.io/learn/dockerfile/level2/

http://www.docker.io/learn/dockerfile/level2/

相关推荐