当前位置:首页 > 技术文章 > 正文内容

Docker从入门到放弃-如何去创建一个Docker镜像

arlanguage3个月前 (02-01)技术文章26

之前我们介绍关于Docker的简单使用,并且了解了通过Docker Hub来操作Docker镜像。也提到了,我们也可以创建好自己的Docker镜像然后上传到Docker Hub上来提供更多人的使用。那么下面我们就来看看如何去创建一个Docker镜像。

编写一个Dockerfile文件

Dockerfile文件是Docker镜像的设置文件,其中包括了用来创建镜像的各种执行脚本。这里我们先来创建一个用来测试的目录

mkdir example
cd  example

创建好目录之后我们在对应的目录下创建一个Dockerfile的文件,文件内容如下。

FROM ubuntu:14.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

以上这段脚本用来创建了一个Ubuntu14.04的镜像,并且在这个镜像中安装了一个Nginx的服务器。

  • FROM:是用来指定了镜像的基础镜像,因为Docker镜像的创建是基于一个基础镜像来创建。
  • MAINTAINER:维护者的信息
  • RUN:运行Shell脚本或者命令
  • CMD:指定容器启动时候运行的文件或者是Shell脚本
  • WORKDIR:为CMD中设置可执行文件的目录
  • EXPOSE:与主机相连的端口号

使用Build命令来创建镜像

在编写好Dockerfile的文件之后,可以在对应的example目录中执行build命令来编译镜像

docker build --tag hello:0.1

这里使用tag选项设置镜像的名称和标签,如果只是单纯的生成了镜像,那么标签就会设置为latest,执行命令完成之后,就生成了对应的镜像。

我们可以通过如下的命令运行来验证镜像运行情况

docker run --name hello-nginx -d -p 80:80 -v /root/data:/data hello:0.1

运行成功之后可以采用docker ps,命令来查看对应容器镜像的运行情况。

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/2070.html

分享给朋友:

“Docker从入门到放弃-如何去创建一个Docker镜像” 的相关文章

利用Nginx正向代理实现局域网电脑访问外网

引言在网络环境中,有时候我们需要让局域网内的电脑访问外网,但是由于网络策略或其他原因,直接访问外网是不可行的。这时候,可以借助 Nginx 来搭建一个正向代理服务器,实现局域网内电脑通过 Nginx 转发访问外网的需求。在工作中我遇到了一个类似的情况:在公司网络中,由于管理要求,局域网内的电脑不能直...

5分钟搞懂nginx的location匹配规则

目录概述location介绍location指令语法location配置实例解析location常用场景实战禁止访问.sh后缀的文件实例php7进阶到架构师相关阅读概述这是关于php进阶到架构之Nginx进阶学习的第一篇文章:5分钟搞懂nginx的location匹配规则第一篇:5分钟搞懂nginx...

nginx-UrlRewrite 实现URL重写转发

URL重写在前后端分离的开发模式中,会遇到这样一个需求:前端通过特定路由前缀来访问后端接口,例如:http://localhost/api/getUser,这里 api 即是每一个前端 request 所多加的前缀。nginx 需要把http://localhost/api/getUser 转换成后...

Nginx常用经典配置|反向代理、HTTPS重定向、端口转发

二级目录映射目前前后端项目分离场景多了以后,一般是前端一个端口,后端一个端口。如前端是https://example.com/index.html,调用的接口是https://example.com:4433如此部署对于一些小项目未免有些麻烦,当然你在公网环境下也可以选择使用子域名、其他域名进行跨域...

nginx四层转发:nginx配置ftp反向代理

#nginx转发控制线路server {#nginx代理端口 listen 21212; proxy_timeout 120s; proxy_connect_timeout 120s; proxy_pass fx_ftp; } upstream fx_ftp{ hash $remote_addr c...

nginx反向代理配置去除前缀

使用Nginx做代理的时候,可以简单的直接把请求原封不动的转发给下一个服务。比如,访问abc.com/appv2/a/b.html, 要求转发到localhost:8088/appv2/a/b.html简单配置如下:upstream one { server localhost:8088 wei...