Dockerfile编写

Dockerfile两种方式对比:

1. 一步步的执行

#### (1) 编写Dockerfile文件
vim Dockerfile
FROM ubuntu:14.04
ENTRYPOINT ["/bin/echo"]

(2)通过Dockerfile文件进行构建镜像

[[email protected] docker]# docker build .
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM ubuntu:14.04
 ---> 8cef1fa16c77
Step 2/2 : ENTRYPOINT ["/bin/echo"]
 ---> Running in aaad472bad79
Removing intermediate container aaad472bad79
 ---> 8142eaef4d70
Successfully built 8142eaef4d70

(3)查看我们构建的镜像

[[email protected] docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
<none>              <none>              8142eaef4d70        About a minute ago   223MB

(4)运行此容器测试一下

[[email protected] docker]# docker run 814 Hi Docker !
Hi Docker !

注意:当容器执行完命令后,就会进入停止状态,这时如果我们想要运行该容器的话,执行以下命令:[[email protected] docker]# docker run 814

2. 对DockerFile进行改进

(1)查看我们改变的内容

[[email protected] docker]# cat Dockerfile
FROM ubuntu:14.04
ENTRYPOINT ["/bin/echo“ , "Hi Docker !"]

(2)镜像构建

[[email protected] docker]# docker build .
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM ubuntu:14.04
 ---> 8cef1fa16c77
Step 2/2 : ENTRYPOINT ["/bin/echo" , "Hi Docker !"]
 ---> Running in 7d9577b1d2e1
Removing intermediate container 7d9577b1d2e1
 ---> 3b1ac59ac602
(3)运行容器
[[email protected] docker]# docker run 3b1
Hi Docker !

从以上查看镜像时看到,镜像是没有标签的,如果要指定标签,按以下命令行的格式来做。

[[email protected] docker]# docker build -t cookbook:hello .
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM ubuntu:14.04
 ---> 8cef1fa16c77
Step 2/2 : ENTRYPOINT ["/bin/echo" , "Hi Docker !"]
 ---> Using cache
 ---> 3b1ac59ac602
Successfully built 3b1ac59ac602
Successfully tagged cookbook:hello

再次查看镜像:

Dockerfile学习参考地址:
https://docs.docker.com/reference/builder/
https://docs.docker.com/articles/dockerfile_best-practices/

原文地址:http://blog.51cto.com/aishangwei/2120807

时间: 2024-11-06 09:56:33

Dockerfile编写的相关文章

DockerFile实战(二):DockerFile编写要求与基本风格

之前分享了一个Nginx的Dockerfile实战文章,但这是基于原有镜像的基础上去添加修改的,那么本文 来详细讲解一下,如何从ubuntu镜像生成一个Nginx镜像 Step1: #最开始,还是需要先搜索一个可用的镜像 $docker search ubuntu #在这里,可以看到许多的相关镜像,但这里我们安装第一个就可以,可以看STARS评级很高的那个 $docker pull ubuntu #如果网络情况够好的话,稍等片刻,一个可用的镜像就下载完毕了 Step2: 下载完镜像以后,我们需要

手把手教你写Dockerfile, 附赠MongoDB和Nginx Dockerfile编写实例

手把手教你写Dockerfile, 附赠MongoDB和Nginx Dockerfile编写实例 基础镜像可以用于创建Docker容器.镜像可以非常基础,仅仅包含操作系统:也可以非常丰富,包含灵巧的应用栈,随时可以发布.当你在使用 Docker构建镜像的时候,每一个命令都会在前一个命令的基础上形成一个新层.这些基础镜像可以用于创建新的容器.本篇文章将手把手教您如何从基础镜 像,一步一步,一层一层的从Dockerfile构建容器的过程. Docker简介 Docker项目提供了构建在Linux内核

dockerfile编写教程及相关原理

Dockerfile编写教程 本文大部分内容来自于:https://yeasy.gitbooks.io/docker_practice/image/build.html 创建一个目录并进入到该目录下创建Dockerfile文件 vim /root/test/Dockerfile 需要安装的镜像文件 这里安装了最新版的centos和python3.7.4以及安装过程中所需要的依赖,开放端口为8000端口 初级写法 FROM centos:latest MAINTAINER ryan.liu "[e

docker 应用-2(Dockerfile 编写以及镜像保存提交)

我们可以从docker hub上pull别人的镜像,也可以将容器进行修改,然后commit镜像,并把镜像push到docker hub上被被人使用.但是,直接pull或者push镜像的方式太过笨重,尤其在镜像体积很大的时候. Dockerfile就可以让我们用写脚本的方式自动化构建镜像,避免对容器修改+提交的方式构建镜像,也可以让我们不用每次都耗时耗力的pull一个远程镜像. Dockerfile的编写 直接看官方文档吧:https://docs.docker.com/engine/refere

Dockerfile编写 支持systemctl ,支持ssh ,支持nginx,(容器自启进程)

支持ssh+nginx+进程自启的dockerfile --------Dockerfile 1 -------------------------------------------------------------------------------------------在同一目录下编写Dokerfile文件,以及提前copy authorized_keys 文件,支持ssh验证,yum源如果下载不了自己配置源 vim Dockerfile FROM centos:latest MAIN

使用Dockerfile编写PHP环境

准备环境 准备好以下文件 1.crontab 2.default.conf 3.nginx.conf 4.php-docker.conf 5.php.ini 6.php-www.conf 7.sources.list 8.supervisord.conf 编写dockerfile cat dockerfile #使用php-fpm:5.6基础镜像FROM php:5.6-fpmMAINTAINER wfy #使用apt-get源(docker官方镜像系统大多为debian或者Ubuntu,所以使

docker安装与常规使用 &amp;&amp; dockerfile编写springbootdemo镜像

dockerfile教程参考 https://blog.csdn.net/qq_33256688/article/details/80319673 docker 创建容器命令: docker run -d -p 10002:8080 --name springdemo springdemo -d : 后台运行 -p :设置端口映射 --name:为容器起名 说明:镜像只需run一次加载到容器,后续通过start.stop和restart指令来管理该容器 进入docker容器里面: 建议使用exe

10. 通过 Dockerfile 编写 linux 命令行工具

测试 linux 压力的工具 一. 实际操作 1. 创建一个 ubuntu 的容器 docker run -it ubuntu 2. 安装 stress 工具 apt-get update && apt-get install -y stress 3. stress 命令 stress --vm [number]  标示创建几个进程 --vm-bytes [number]  为每一个进程分配多少字节的内存 默认256M内存    --verbose  循环分配 创建的进程 并释放 如果分配

Dockerfile编写,以及设置一个自启动脚本

FROM:指定基础镜像,必须为第一个命令 MAINTAINER: 维护者信息 RUN:构建镜像时执行的命令 ADD:将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget COPY:功能类似ADD,但是是不会自动解压文件,也不能访问网络资源 CMD:构建容器后调用,也就是在容器启动时才进行调用. ENTRYPOINT:配置容器,使其可执行化.配合CMD可省去"application",只使用参数. LABEL:用于为镜像添加元数据 E