操作步骤:

1. 编辑Dockerfile

2. 使用build命令创建镜像

3. 使用run命令测试创建的镜像

  • 编辑Dockerfile

首先,需要使用文本编辑器编辑Dockerfile文件(注意没有扩展名,文件名称就是Dockerfile),文件内容如下:

FROM ubuntu:18.04
MAINTAINER Super Lollipop <superlollipop@163.com> RUN mv /etc/apt/sources.list /etc/apt/sources.list_bak
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main multiverse restricted universe\ndeb http://mirrors.aliyun.com/ubuntu/ bionic-backports main multiverse restricted universe\ndeb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main multiverse restricted universe\ndeb http://mirrors.aliyun.com/ubuntu/ bionic-security main multiverse restricted universe\ndeb http://mirrors.aliyun.com/ubuntu/ bionic-updates main multiverse restricted universe\ndeb-src http://mirrors.aliyun.com/ubuntu/ bionic main multiverse restricted universe\ndeb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main multiverse restricted universe\ndeb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main multiverse restricted universe\ndeb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main multiverse restricted universe\ndeb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main multiverse restricted universe" > /etc/apt/sources.list
RUN apt update
RUN apt 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

  这个Dockerfile是使用ubuntu:latest创建镜像,且安装nginx服务器。目前我这边的ubuntu:latest其实就是ubuntu:1804,由于ubuntu镜像的默认安装源太慢了,我这里更换了阿里源。文件内容的说明如下:

  FROM:制定创建镜像的基础镜像,这里选择最新版的ubuntu,注意基础镜像是已经下载到本地的镜像,可以使用docker images查看本地的镜像

  MAINTAINER:填写维护者信息

  RUN:使用基础镜像内需要运行的shell脚本或命令,这里输入了命令。首先备份了原有的源文件,然后使用echo命令添加的新的源文件,然后执行更新源后下载nginx服务器,后面的命令是nginx服务器的设置

  VOLUMN:设置要与主机共享的目录,我这里设置了三个目录

  WORKDIR:为CMD中设置的可执行文件设置运行目录

  CMD:指定容器启动时执行的shell命令或脚本,我这里是启动nginx服务器

  EXPOSE:设置与主机相连的端口号

  • 使用build命令创建镜像
sudo docker build --tag nginx:0.1 .

  docker build用法:docker build [选项] Dockerfile路径。执行详细结果见下图:

                              ......

可以看到docker build命令是根据Dockerfile文件的命令脚本一步步执行下去的,Step 1/13 Step 2/13 ...。最后结果可以看到 Successfully built 14a1c63ce60b Successfully tagged nginx:0.1 字眼提示成功创建容器了。可以使用docker images查看创建的容器,这里不再示例。

  • 使用run命令测试创建的镜像
sudo docker run --name nginx-ubuntu-container -d -p 80:80 nginx:0.1

命令参数说明:-d 选项在后台运行容器;-p 80:80 选项可以将本机的80端口和容器的80端口连接起来,并暴露到外面。

这时候我们就可以在浏览器测试容器是否成功启动了,浏览器访问nginx服务器:

#cnblogs_post_body p { margin: 10px; text-indent: 2em }

Docker学习笔记之创建安装了nginx服务器的镜像的更多相关文章

  1. docker学习笔记1-- 用Toolbox安装Docker--介绍Docker Machine

    使用的是Docker Toolbox,非Docker for Windows 一.docker的认识与安装(windows安装) http://blog.csdn.net/tina_ttl/artic ...

  2. Docker学习笔记_创建和使用Centos容器

    实验:创建和使用Centos容器 步骤: 1.搜索                                                     sudo docker search cen ...

  3. Docker学习笔记之创建Ubuntu基础镜像

    在创建基础镜像之前需要安装Bootstrap工具debootstrap,所以执行命令: sudo apt install debootstrap 软件安装完成后就可以使用debootstrap工具下载 ...

  4. docker学习笔记-1

    docker学习笔记一:安装 mac安装docker docker官方文档上有这么一段话: Because the Docker daemon uses Linux-specific kernel f ...

  5. Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

    上一节演示如何安装Docker,链接:Docker学习笔记之-在CentOS中安装Docker 本节演示 将.net core 3.1 部署到docker容器当中,并使用 Nginx反向代理,部署平台 ...

  6. Docker学习笔记之--安装mssql(Sql Server)并使用Navicat连接测试(环境:centos7)

    前一节演示如何使用Nginx反向代理 .net Core项目容器,地址:Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(二) ...

  7. Docker学习笔记之-在CentOS中安装Docker

    上一节演示了如何 通过Xshell连接CentOS服务,链接:Docker学习笔记之-通过Xshell连接 CentOS服务 本节将演示 如何在CentOS中安装 Docker 第一步:更新系统包到最 ...

  8. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  9. docker学习笔记(一)—— ubuntu16.04下安装docker

    docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...

随机推荐

  1. Spring源码分析之AOP从解析到调用

    正文: 在上一篇,我们对IOC核心部分流程已经分析完毕,相信小伙伴们有所收获,从这一篇开始,我们将会踏上新的旅程,即Spring的另一核心:AOP! 首先,为了让大家能更有效的理解AOP,先带大家过一 ...

  2. Scala中的IO操作及ArrayBuffer线程安全问题

    通过Scala对文件进行读写操作在实际业务中应用也比较多,这里介绍几种常用的方式,直接上代码: 1. 从文件中读取内容 object Main { def loadData(): Array[Stri ...

  3. [OI笔记]NOIP2017前(退役前)模拟赛的总结

    好久没写blog了- 在noip2017前的最后几天,也就是在我可能将要AFO的前几天写点东西吧- 记录这最后几个月打的那些大大小小的模拟赛 一些比赛由于不允许公开所以就没有贴链接跟题面了- 2017 ...

  4. Spring Boot 简单入门案例

    第一:打开idea 找到spring  Initializr 第二:点击Next 在点击下一步 找到web之后勾选第一个spring web 就完成了 在写一个类 点击运行 结果如下:

  5. 我们为什么选择VUE来构建前端

    很多使用过VUE的程序员,对VUE的评价是"Vue.js 兼具angular.js和react.js的优点,并剔除了它们的缺点". 那么,他真的值得这么高的评价嘛? Vue.js的 ...

  6. (第一篇)记一次python分布式web开发(利用docker)

    作者:落阳 日期:2020-12-23 在一次项目开发中,决定使用docker+nginx+flask+mysql的技术栈来开发,用此系列文章记录开发的过程. 系列文章,当前为第一篇,记录一次pyth ...

  7. Java基础:String类详解,案例用户登录实现,案例手机号截取实现,案例敏感词替换实现;StringBuilder类详解,StringBuilder和String相互转换,附练习案例.

    1.API 1.1 API概述-帮助文档的使用 什么是API API (Application Programming Interface) :应用程序编程接口 java中的API 指的就是 JDK ...

  8. 【磁盘/文件系统】第二篇:标准磁盘分区流程针对fdisk(硬盘容量小于2T且分区数不能大于15个分区)

    前奏:先插上一块磁盘(做了RAID的磁盘才能分区) 查看磁盘连上服务器没有,或者说是可以进行分区前奏 [root@PandaLi ~]# ll /dev/sd sda sda1 sda2 sda3 s ...

  9. Docker - 配置加速器

    https://www.daocloud.io/mirror#accelerator-doc curl -sSL https://get.daocloud.io/daotools/set_mirror ...

  10. c#——ToString()的各种用法

    ToString()的各种用法 string str = ""; str = 123456.ToString("N"); //生成 12,3456.00 str ...