`

Dockerfile使用方法

 
阅读更多
Docker Dockerfile详解 http://my.oschina.net/2xixi/blog/516951#OSC_h4_7

官方Dockerfile列表:https://github.com/CentOS/CentOS-Dockerfiles
wmarinho / postgresql-v9.3-centos https://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 ):

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

# VERSION 0.0.1
# 默认ubuntu server长期支持版本,当前是12.04
FROM ubuntu
# 签名啦
MAINTAINER yongboy "yongboy@gmail.com"

# 更新源,安装ssh server
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe"> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y openssh-server
RUN mkdir -p /var/run/sshd

# 设置root ssh远程登录密码为123456
RUN echo "root:123456" | chpasswd

# 添加orache java7源,一次性安装vim,wget,curl,java7,tomcat7等必备软件
RUN apt-get install python-software-properties
RUN add-apt-repository ppa:webupd8team/java
RUN apt-get update
RUN apt-get install -y vim wget curl oracle-java7-installer tomcat7

# 设置JAVA_HOME环境变量
RUN update-alternatives --display java
RUN echo "JAVA_HOME=/usr/lib/jvm/java-7-oracle">> /etc/environment
RUN echo "JAVA_HOME=/usr/lib/jvm/java-7-oracle">> /etc/default/tomcat7

# 容器需要开放SSH 22端口
EXPOSE 22

# 容器需要开放Tomcat 8080端口
EXPOSE 8080

# 设置Tomcat7初始化运行,SSH终端服务器作为后台运行
ENTRYPOINT service tomcat7 start && /usr/sbin/sshd -D



构建镜像
脚本写好了,需要转换成镜像:
docker build -t yongboy/java7 .

-t: 为构建的镜像制定一个标签,便于记忆/索引等
. : 指定Dockerfile文件在当前目录下


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

构建镜像完成之后,看看运行效果
docker run -d -p 22 -p 8080:8080 yongboy/java7

在运行命令中,还得需要显式指定 -p 22 -p 8080:8080,否则在Docker 0.8.1版本中不会主动映射到宿主机上。据悉在Docker 0.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

构建镜像
docker build -t yongboy/java7 .
上面已经构建OK的话,可省略此步。

登陆
docker login

提交到Docker索引仓库
docker push yongboy/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/
分享到:
评论

相关推荐

    使用Dockerfile部署nodejs服务的方法步骤

    主要介绍了使用Dockerfile部署nodejs服务的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Dockerfile文本文件使用方法实例解析

    Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 Docker支持快速的创建自定义镜像 Dockerfile常用命令 ...此时使用 docker images 能看到刚创建的镜像的版本

    Qt5.4_NaCl:DockerFile使用Qt5.4和NaCl为ubuntu 14.04生成基础映像

    DockerFile使用Qt5.4和NaCl为ubuntu 14.04生成基础映像 构建dockerfile 在终端中,转到放置Dockerfile的文件夹。 执行以下命令: $ sudo docker build -t qtnacl5.4.2 . 这将花费很多时间! 然后执行以下命令来...

    使用dockerfile构建nginx镜像的方法示例

    Dockerfile介绍 Docker通过读取Dockerfile里面的内容可以自动build image,Dockerfile是一个包含了build过程中需要执行的所有命令的文本文件。也可以理解为Dockfile是一种被Docker程序解释的脚本,由一条一条的指令...

    编写最佳的Dockerfile的方法

    我已经使用Docker有一段时间了,其中编写Dockerfile是非常重要的一部分工作。在这篇博客中,我打算分享一些建议,帮助大家编写更好的Dockerfile。 目标: 更快的构建速度 更小的Docker镜像大小 更少的Docker镜像...

    docker使用Dockerfile构建镜像的方法

    主要介绍了docker使用Dockerfile构建镜像的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Docker Dockerfile 定制镜像的方法

    使用 Dockerfile 定制镜像 镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么无法重复的问题、镜像构建透明...

    利用Dockerfile部署SpringBoot项目的方法

    主要介绍了利用Dockerfile部署SpringBoot项目的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

    docker官方镜像下载及使用Dockerfile创建镜像的方法

    4、创建Dockerfile文件: [root@vmhost centos7.2]# cat Dockerfile [plain] view plain copy FROM centos:7.2.1511 MAINTAINER wanghongwei(wanghongwei@4paradigm.com) RUN yum install -y expect \ && yum ...

    详解docker中Dockerfile指令创建镜像

    写在前面: 继续docker的学习,昨天用docker成功跑了tomcat,但是在...Dockerfile的书写规则及指令使用方法 Dockerfile的指令是忽略大小写的,建议使用大写,使用 # 作为注释,每一行只支持一条指令,每条指令可以携

    Dockerfile指令详解

    Dockerfile从FROM命令开始,紧接着跟随者各种方法,命令和参数。其产出为一个新的可以用于创建容器的镜像。 当你在使用 Docker构建镜像的时候,每一个命令都会在前一个命令的基础上形成一个新层。这些基础镜像可以...

    利用Dockerfile制作java运行环境的镜像的方法步骤

    主要介绍了利用Dockerfile制作java运行环境的镜像的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    dockerfile-generator:用于 Node.js 的 Dockerfile 生成器

    图书馆的使用方法 您可以在此处找到参考文档: 。 const generator = require ( 'dockerfile-generator' ) const result = await generator . generateDockerFile ( inputJson ) // Result is a generated...

    使用MediaTR教程在.NETCore中实现CQRS-C#-Dockerfile-下载

    (更多详情、使用方法,请下载后细读README.md文件) "带 MediaTR 的 CQRS 阅读我的教程: 第 1 部分: medium.@ducmeitnet-core-using-cqrs-pattern-with-mediatr-part-1-55557e90931b 第 2 部分: medium.@...

    django-dockerfile

    该项目旨在实现一种简单的方法来启动和运行 Django。 假设您已经用了一两天时间设置了一个小型 Django 项目,现在您想将该项目推入生产环境。 但是,通过数据库设置、静态和媒体文件处理、安全性、备份等进行适当的...

Global site tag (gtag.js) - Google Analytics