首页 > Docker > Centos 7.x 利用 Dockerfile 来创建Beego Framework
Centos 7.x 利用 Dockerfile 来创建Beego Framework
2015年7月17日 3,089 浏览数 发表评论 阅读评论

Dockerfile包含创建镜像所需要的全部指令。基于在Dockerfile中的指令,我们可以使用Docker build命令来创建镜像。通过减少镜像和容器的创建过程来简化部署

Dockerfile 基本的语法是

  • 使用#来注释
  • FROM 指令告诉 Docker 使用哪个镜像作为基础,这里我从自己的私有镜像库获取
  • MAINTAINER:设置该镜像的作者
  • RUN开头的指令会在创建中运行,比如安装一个软件包,在这里使用 yum 来安装了一些软件,在shell或者exec的环境下执行的命令。RUN指令会在新创建的镜像上添加新的层面,接下来提交的结果用在Dockerfile的下一条指令中
  • ADD:复制文件指令。它有两个参数<source>和<destination>。destination是容器内的路径。source可以是URL或者是启动配置上下文中的一个文件
  • CMD:提供了容器默认的执行命令。 Dockerfile只允许使用一次CMD指令。 使用多个CMD会抵消之前所有的指令,只有最后一个指令生效
  • EXPOSE:指定容器在运行时监听的端口
  • ENTRYPOINT:配置给容器一个可执行的命令,这意味着在每次使用镜像创建容器时一个特定的应用程序可以被设置为默认程序。同时也意味着该镜像每次被调用时仅能运行指定的应用。类似于CMD,Docker只允许一个ENTRYPOINT,多个ENTRYPOINT会抵消之前所有的指令,只执行最后的ENTRYPOINT指令
  • WORKDIR:指定RUNCMDENTRYPOINT命令的工作目录
  • ENV:设置环境变量。它们使用键值对,增加运行程序的灵活性
  • USER:镜像正在运行时设置一个UID
  • VOLUME:授权访问从容器内到主机上的目录

这个是一个部署beego环境的Dockfile,容器使用该镜像能自动启动一个beego框架的web应用

beego框架测试文件hello.go,和Dockerfile放在同一目录

bulid镜像,这里可以看到build的过程,是不是和打RPM包很相似。

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

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

查看生成的镜像,我上面bulid的是0.2这个版本

如果想删除某个镜像,可以用 docker rmi ef5ba42cf19c

基于生成的镜像运行一个容器

–name 是给容器取名,方便自己识别

-P 是自动映射容器里面端口,宿主机会随机映射一个端口

查看容器

如果想删除某个容器的话,可以docker rm a69634223a4c, 如果只有一个a6开头的话,你甚至可以直接  docker rm a6,强制删除可以-f

可以看到容器开放了22和8080端口,宿主机将本地的32788映射到容器的22端口,32789映射到容器的8080端口,如果你想手动指定映射端口可以采用

然后我们浏览器访问下容器里面的beego

92E7DD82-08F4-4A28-BB2E-DAEAD1C5C36B

如果想看容器内运行日志可以用docker logs

如果想停止重启容器可以用 docker stop和docker restart

可以看到a69634223a4c 这个容器已经是exit状态

如果你想将容器保存为镜像,可以用docker commit

 

如果你想进一步对容器进行修改,可以ssh进去,前提是你的镜像里面设置过ssh密码,或者在制作镜像的时候,加入

或者通过docker exec无密码进入

中间是容器的CONTAINER ID,通过docker ps -a可以看到

测试通过后,我们将镜像提交到我们私有镜像库

 

转载请注明出处:http://54im.com/docker/centos-7-x-use-dockerfile-create-beego-framework.html

 

分类: Docker 标签: , , ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.