第一个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(首字母大写)的纯文本文件并执 ...
随机推荐
- 解决CentOS 6环境时区、日期、时间同步方法
有些时候我们在选择的VPS服务商提供的VPS主机方案安装系统.安装建站环境之后就直接上马网站,但是我们会有发现发布的文章或者有些时候设置的自动执行脚本时间与我们实际的时间不符合.甚至有些程序是需要与本 ...
- 【VS2013编译DirectX Tutorials时遇到的错误】"const wchar_t *" 类型的实参与 "LPCSTR" 类型的形参不兼容
本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/p/3696367.html 通过查看LPCSTR的定义: typedef _Null_te ...
- java学习笔记 --- 多线程(线程安全问题——同步代码块)
1.导致出现安全问题的原因: A:是否是多线程环境 B:是否有共享数据 C:是否有多条语句操作共享数据 2.解决线程安全问题方法: 同步代码块: synchronized(对象){ 需要同步的代码; ...
- hdoj-1038-Biker's Trip Odometer(水题)
题目真的考验英语 题目链接 需要进行单位的转换 对于Pi用:3.1415927. 5280步相当于1英里. 12英寸相当于1步. 60分钟等于1小时 60秒等于1分钟. 201.168米等于1弗朗.( ...
- codeforces 755F F. PolandBall and Gifts(贪心+多重背包)
题目链接: F. PolandBall and Gifts time limit per test 1.5 seconds memory limit per test 256 megabytes in ...
- hdu 4445 Crazy Tank(物理过程枚举)
遇到物理题,千万不要一味的当成物理题去想着推出一个最终结果来,这样ACM竞赛成了物理比赛,出题人就没水平了...往往只需要基础的物理分析,然后还是用算法去解决问题.这题n小于等于200,一看就估计是暴 ...
- linux中使用opdir_readdir读取目录中的信息
#include <dirent.h>#include <stdio.h>#include <stdlib.h> int main(int argc, char * ...
- 下载安装jdk
阿里云服务器部署第一步:下载-安装jdk 1.下载路径:http://www.oracle.com/ 2.通过windows远程桌面连接上服务器:连接方式: 然后在服务器上c:/user/下创建jav ...
- CodeSmith 基本语法(二)
CodeSmith之四 - 典型实例(四) CodeSmith API文档 (三) CodeSmith 基本语法(二) CodeSmith 图形界面基本操作(一) CodeSmith的C#语法与Asp ...
- 学习动态性能表(20)--v$waitstat
学习动态性能表 第20篇--V$WAITSTAT 2007.6.15 本视图保持自实例启动所有的等待事件统计信息.常用于当你发现系统存在大量的"buffer busy waits" ...