Docker Dockerfile的使用实例

Dockerfile

FROM 基础镜像

MAINTAINER 维护这信息

RUN 运行什么命令,在命令前面加上RUN

ADD 往里面加点文件,copy文件,会自动解压

WORKDIR 当前的工作目录

VOLUME 目录挂载

EXPOSE 开放的端口

RUN 进程要一直运行

实战:构建nginx

wget  http://xiazai.jb51.net/201611/yuanma/nginx-1.9.3(jb51.net).rar

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz

#This is My first Dockerfile#version 1.0
#Author: hh
#Base image 基础镜像
FROM centos
#MAINTAINER 维护者信息
MAINTAINER hh Wang
#ADD
ADD pcre-8.38.tar.gz /usr/local/srcADD nginx-1.9.3.tar.gz /usr/local/src
#RUN
RUN yum -y install wget gcc gcc-c++ make openssl openssl-devel
RUN useradd -s /sbin/nologin -M www
#WORKDIR
WORKDIR /usr/local/src/nginx-1.9.3
RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module \
--with-pcre=/usr/local/src/pcre-8.38 && make && make install
RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf
#ENV定义环境变量
ENV PATH /usr/local/nginx/sbin:$PATH
#EXPOSE 映射端口
EXPOSE 80 CMD ["nginx"]

docker build -t whh/nginx-file:v1 .

docker run -d -it -p 93:80 --name nginx whh/nginx-file:v1

下面再看下dockerfile 的使用

通过docker build命令可以建立镜像。

通常需要文本文件Dockerfile,例子如下:

from hub.c.163.com/library/nginx ----基于的镜像

run echo "hello world" >/etc/nginx/index.xml ----追加到index.html 末尾

expose 80 ---暴露80端口

cmd 'nginx' ----启动nginx服务

保存后,运行 docker build -t mynginx:1.0 .

然后运行 docker images ,查看到所构建的镜像。

通过 docker run -d -p 8082:80 --name nginx_web mynginx:1.0

最后通过 http://ip:8081 访问到nginx的index.html的内容

(0)

相关推荐

  • Docker 配置固定IP及桥接的实现方法

    docker默认使用bridge模式,通过网桥连接到宿主机,而容器内部的ip则从网桥所在的ip段取未用的ip.这样做一个不方便的地方在于容器内部的ip不是固定的,想要连接容器时只能通过映射到宿主机的端口,因而有很多项目使用overlay来为docker提供网络的配置,比如Pipework.Flannel.Kubernetes.Weave.opencontrail等. 想要使用overlay来为docker配置网络,需要首先了解下docker的网络模式: 一.Docker的四种网络模式 Docke

  • Docker 清理命令集锦

    杀死所有正在运行的容器 复制代码 代码如下: docker kill $(docker ps -a -q) 删除所有已经停止的容器 复制代码 代码如下: docker rm $(docker ps -a -q) 删除所有未打 dangling 标签的镜像 复制代码 代码如下: docker rmi $(docker images -q -f dangling=true) 删除所有镜像 复制代码 代码如下: docker rmi $(docker images -q) 为这些命令创建别名 复制代码

  • 在Mac OS上安装Vagrant和Docker的教程

    当听到很多人在说Docker是多么多么的棒,很多新潮的孩子都在使用它时,我决定在我的开发环境上也来尝试下.在下面的这篇文章中,我将讲解在Mac OS X怎样建立Postgres,Elasticsearch和Redis. 什么是Docker Docker用轻量容器把一个APP从它运行的OS中隔离开.它把APP放入到一个孤立的盒子中,对外只呈现需要使用的文件夹和端口. 这样,基于建立和使用APP的容器是可重用,共享的.目前,在Docker集中已经存在了15,000种以上的容器.Docker就像一个商

  • 在docker中部署tomcat并且部署java应用程序的步骤详解

    先给大家简单说下Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 1.先说如何在docker中部署tomcat 第一步:root用户登录在系统根目录下创建文件夹tomcat7,命令如:mkdir tomcat7,并且切换到该目录下:cd tomcat7: 第二步:创建Dockerfile,命令如:touch Docker

  • ubuntu14.04+docker的安装及使用

    安装 官方推荐在ubuntu安装,本文选择在ubuntu14.04作为宿主系统. 系统更新 复制代码 代码如下: sudo apt-get update && apt-get upgrade -y sudo reboot     #最好重启一下  安装docker 复制代码 代码如下: curl -s https://get.docker.io/ubuntu/ | sudo sh  基础命令 复制代码 代码如下: # 下载一个ubuntu镜像 sudo docker pull ubuntu

  • 10分钟学会docker

    本文大概耗时10分钟. 你将会看到以下内容: 为什么要用docker docker几个概念 如何运行docker container 如何build image 本文假定你有以下基础: 1.linux命令行(见参考链接) 2.必要的英语词汇 为什么要用docker? 在探讨docker能为我们带来的好处时,我们先得明白docker是什么.docker官网是这样描述的"Docker is the world's leading software container platform."由

  • Docker Dockerfile的使用实例

    Dockerfile FROM 基础镜像 MAINTAINER 维护这信息 RUN 运行什么命令,在命令前面加上RUN ADD 往里面加点文件,copy文件,会自动解压 WORKDIR 当前的工作目录 VOLUME 目录挂载 EXPOSE 开放的端口 RUN 进程要一直运行 实战:构建nginx wget  http://xiazai.jb51.net/201611/yuanma/nginx-1.9.3(jb51.net).rar wget ftp://ftp.csx.cam.ac.uk/pub

  • 浅析SpringBoot打包上传到docker并实现多实例部署(IDEA版)

    最近有一个朋友问我有没有玩过docker,回答起来底气不是很足 ^ - ^ (刚开始玩cloud的时候接触过,玩过一会,后面在实际开发中比较少用,所以基本上可以说是忘记了.),今天花了点时间整理之前的笔记以及整理走一个流程,记录一下吧,下次玩得时候C V 就好啦~ 1. Docker的安装以及开启远程访问 1.1 安装 # 检查虚拟机内核版本,必须是3.10及以上 uname -r # 安装docker yum install docker # 输入y确认安装 # 启动docker system

  • docker基本命令及使用实例详解

    docker基本命令 docker文件系统 docker镜像为分层设计,相比于全量的虚拟机镜像,少了引导程序bootfs,共用系统内核rootfs. 配置层(容器层) commit镜像 docker commit -a="" -m="" docker_id image_name:tag 类似于给镜像打个快照. 容器数据卷 解决问题 ->数据持久化 本质是目录挂载 使用数据卷 方式一: 直接使用命令挂载 -v docker run -it -v 主机目录:容器内

  • Docker及Docker-Compose的实例用法

    Docker是一个开源的容器引擎,它有助于更快地交付应用.方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需要数秒就能完成. 架构 Docker daemon( Docker守护进程):Docker daemon是一个运行在宿主机( DOCKER-HOST)的后台进程.可通过 Docker客户端与之通信. Client( Docker客户端):Docker客户端是 Docker的用户界面,它可以接受用户命令和配置标识,并与 Docker dae

  • 浅谈docker Dockerfile 指令 VOLUME 介绍

    在介绍VOLUME指令之前,我们来看下如下场景需求: 1)容器是基于镜像创建的,最后的容器文件系统包括镜像的只读层+可写层,容器中的进程操作的数据持久化都是保存在容器的可写层上.一旦容器删除后,这些数据就没了,除非我们人工备份下来(或者基于容器创建新的镜像).能否可以让容器进程持久化的数据保存在主机上呢?这样即使容器删除了,数据还在. 2)当我们在开发一个web应用时,开发环境是在主机本地,但运行测试环境是放在docker容器上. 这样的话,我在主机上修改文件(如html,js等)后,需要再同步

  • Docker容器配置Nginx实例分享

    作为目前最火的应用,Docker 确实存在着其独到之处,无论是程序猿还是运维都应该听说过 Docker 的大名,Docker 已经走过了许多的坑,目前最新版本是 v1.11.0 版本,应该说是完全能承载开发使用和运维监控,这款工具能帮助我们高效的打包.发布和运行承载着应用程序的容器系统.而且收集日志.帮助 App 的快速开发都有很大作用. 容器和虚拟机,经常是被拿出来对比的两款产品,实际上两者有着根本的差别,虚拟机是完全模拟了一台真实计算机,在上面运行的系统可能或者不可能知道自己运行在虚拟化环境

  • Docker 搭建lamp应用实例详解

    Docker 搭建lamp应用 LAMP 指的 Linux(操作系统).ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和 PHP(有时也是指 Perl 或 Python) 的第一个字母,一般用来建立 web 服务器. 虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的免费和开源,这个组合开始流行(大多数Linux发行版本捆绑了这些软件).当一起使用的时候,它们表现的像一个具有活力的解决方案包.下面介绍如何使用Docker来搭建一个包含

  • docker Dockerfile文件制作自己的镜像的方法

    1.创建空目录 $ cd /home/xm6f/dev $ mkdir myapp $ cd myapp/ 2.vim Dockerfile,内容如下: ## 一个基础的 python 运行环境 FROM python ## 设置工作目录 WORKDIR /app ## 将当前系统文件夹内容复制到容器的 app 目录 ADD . /app ## 安装必要的依赖包 RUN pip install -r softwares.txt ## 开放端口,供容器外访问 EXPOSE 80 EXPOSE 30

  • Docker Dockerfile 定制镜像的方法

    使用 Dockerfile 定制镜像 镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么无法重复的问题.镜像构建透明性的问题.体积的问题就都会解决.这个脚本就是 Dockerfile. Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建. 此处以定制 nginx 镜像为例,使用 Dockerfile

  • Docker 私有仓库恢复实例详解

    Docker 私有仓库恢复 之前openstack平台由于停电等影响,导致之前制作的registry 私有仓库的主机挂掉,还好数据挂载在nfs中,然后现在尝试重新启动恢复. 虚机安装nfs服务 apt-get install -y nfs-common 编辑 /etc/fstab 写入远程挂载地址 10.50.8.12:/export/DockerRepo   /var/lib/docker/registry      nfs    defaults        0 0 然后进行挂载: mou

随机推荐