第一个Dockerfile
1、 创建docker目录
$ mkdir docker && cd docker
2、 编写Dockerfile
$ vim Dockerfile
[docker/Dockfile] FROM ubuntu:16.04
MAINTAINER Foo Bar < foo@bar.com> RUN apt-get update
RUN apt-get install -y nginx
RUN echo “\ndaemon off:”>> /etc/nginx/nginx.conf
RUN chown –R www-data:www-data /var/lib/nginx VOLUME [“/data”,”/etc/nginx/site-enabled”,”/var/log/nginx”] WORKDIR /etc/nginx CMD [“nginx”] EXPOSE 80
EXPOSE 443
上述代码基于ubuntu 14.04创建Docker镜像,且安装nginx服务器。
* FROM:指定基于的基础镜像。Docker镜像基于已创建的镜像。指令格式为<镜像名称>:<标签>。
* MAITAINER:维护者信息
* RUN:运行shell脚本或命令
* VOLUME:要与主机共享的目录。也可以在docker run命令中使用 -v 选项进行设置。例如,-v /root/data:/data将主机的/root/data目录连接到Docker窗口的/data目录。
* CMD:指定容器启动时执行的文件或者shell脚本。
* WORKDIR:为CMD中设置的可执行文件设置运行目录
* EXPOSE:与主机相连的端口号
3、 使用build命令创建镜像
$ docker build - -tag hello:0.1 . $ docker images
4、 运行刚刚创建的镜像
$ docker run --name hello-nginx -d -p 80:80 -v /root/data:/data hello:0.1 $ docker ps
* -d选项在后台运行容器。
* -p 80:80选项将主机的80端口与容器的端口连接起来,并暴露到外部。这样设置后,连接http://<主机名>:80就会连接到容器的80端口了。
* -v /root/data:/data选项将主机的/root/data:/data选项将主机的/root/data目录连接到容器的/data目录。若将文件放入/root/data目录,则能从容器读取相应文件。
5、 访问nginx服务器:http://<主机IP>:80,打开后即可出现 welcome to nginx 页面。
第一个Dockerfile的更多相关文章
- 制作你的第一个dockerfile文件
From this lesson you will从这里你将学到1,Make a Dockerfile制作一个Dockerfile2,Build a Docker Image and run构建镜像并 ...
- Docker 学习:制作一个dockerfile
dockerfile, 主要是四部分组成:基础镜像信息.维护者信息.镜像操作指令.容器启动执行指令. step 1: 按照语法,如下写一个centos操作系统的nignx镜像. 然后记得:wq保存和退 ...
- docker 笔记(3)第一个dockerfile
#vim Dockerfile FROM ubuntu RUN apt-get update && apt-get install -y vim #docker build -t ub ...
- Docker学习笔记_使用Dockerfile创建flask的一个镜像
一.实验环境 1.宿主机OS:Win10 64位 2 .虚拟机OS:Ubuntu18.04 64位 虚拟机名称:Ubuntu18VM1 虚拟机IP:192.168.8.25 3.账号:doc ...
- 做一个通过dockerfile从零构建centos7.4
今天做一个dockerfile从零构建centos7.4镜像 废话不多说,很简单. 需要的软件包:centos7.4的rootfs 链接:提取码:usnu 下载以后我们打开看看里面是什么呢: 可以看的 ...
- Dockerfile创建自定义Docker镜像以及CMD与ENTRYPOINT指令的比较
1.概述 创建Docker镜像的方式有三种 docker commit命令:由容器生成镜像: Dockerfile文件+docker build命令: 从本地文件系统导入:OpenVZ的模板. 关于这 ...
- Docker Dockerfile详解
http://blog.csdn.net/wsscy2004/article/details/25878223 如何使用 Dockerfile用来创建一个自定义的image,包含了用户指定的软件依赖等 ...
- Dockerfile完成Hadoop2.6的伪分布式搭建
在 <Docker中搭建Hadoop-2.6单机伪分布式集群>中在容器中操作来搭建伪分布式的Hadoop集群,这一节中将主要通过Dokcerfile 来完成这项工作. 1 获取一个简单的D ...
- 用Dockerfile构建docker image
dockerfile是为快速构建docker image而设计的,当你使用docker build 命令的时候,docker 会读取当前目录下的命名为Dockerfile(首字母大写)的纯文本文件并执 ...
随机推荐
- hdu1542线段树+离散化+扫描线
参考博客: http://blog.csdn.net/xingyeyongheng/article/details/8927732 总的来说就是用一条(假想的)线段去平行x轴从下往上扫描,扫描的过程中 ...
- Mysql ERROR 145 (HY000)
问题:今天Mysql数据库异常关闭,起来之后感觉可以了. 但是运行业务数据的时间就类似如下的错误 ERROR 145 (HY000) at line 34: Table './database_nam ...
- [转载]]Java开发如何在线打开Word文件
此方案使用了PageOffice产品实现在线打开Word文档: 1. 首先从PageOffice官网下载产品开发包,http://www.zhuozhengsoft.com/dowm/ ,下载Page ...
- linux 日常使用命令
●安装和登录命令:login.shutdown.halt.reboot.mount.umount.chsh ●文件处理命令:file.mkdir.grep.dd.find.mv.ls.diff.cat ...
- 26 python 并发编程之多进程理论
一 什么是进程 进程:正在进行的一个过程或者说一个任务.而负责执行任务则是cpu. 举例(单核+多道,实现多个进程的并发执行): egon在一个时间段内有很多任务要做:python备课的任务,写书的任 ...
- L107
It is advisable to take an open- minded approach to new idea. 对新思想采取不存先入之见的态度是明智的.That said, the com ...
- spring学习-4
bean的作用域 使用bean的scope属性来配置bean的作用域 scope="singleton":默认是单例模式即容器初始化创建bean实例,在整个容器的生命周期内只创建这 ...
- python 编码 —— codecs 库
1. 对文件读写 import codecs fout = codecs.open('test.html', 'w', encoding='UTF-8') fout.write('<html&g ...
- java-03方法课堂练习
1.java中利用static(静态),将方法放入类中.如果不加static,必须先实例化出来一个类,之后再通过实例化类名+方法的形式调用. 2.编写一个方法,使用以上算法生成指定数目(比如1000个 ...
- karma
一个简单的工具,允许你在多个浏览器中执行JavaScript代码. Karma的主要目的是使您的测试驱动开发变得简单.快速和有趣. 我什么时候该用Karma? 您希望在真正的浏览器中测试代码. 您希望 ...