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/