操作步骤:

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. P6772 [NOI2020]美食家

    题目大意 给你一个 \(n\) 个点,\(m\) 条边的有向图,每条边有一个权值 \(w_i\) ,每个节点有一个权值 \(a_i\) . 你从节点 \(1\) 出发,每经过一个节点就可以获得该点的权 ...

  2. Python爬虫之BeautifulSoup库

    1. BeautifulSoup 1.1 解析库 1)Python标准库 # 使用方法 BeautifulSoup(markup, "html.parser") # 优势 Pyth ...

  3. day109:MoFang:好友列表显示&添加好友页面初始化&添加好友后端接口

    目录 1.好友列表 2.添加好友-前端 3.服务端提供添加好友的后端接口 1.好友列表 1.在用户中心页面添加好友列表点击入口 html/user.html,用户中心添加好友列表点击入口,代码: &l ...

  4. python 字典常用操作

    字典键是唯一的,但值则不是 一个简单的字典 dict = {"guo":"1106","tang":"0809",&qu ...

  5. js上 十一、循环语句-2

    11-1.跳转语句 在js中,有如下四种跳转语句: ü break ü continue break:结束本层循环 continue:跳过(结束)本次循环,继续进入下一次循环 就是两个关键字 #11- ...

  6. vue第十二单元(vue中过渡效果的实现)

    第十二单元(vue中过渡效果的实现) #课程目标 熟练掌握transition组件的用法 熟练使用transition组件做过渡特效 熟练使用transition组件做动画特效 了解使用transit ...

  7. maven继承父工程统一版本号

    一.建立一个maven工程 pom类型 统一管理依赖以及版本号 子工程不会使用所有的定义的依赖 子工程使用依赖时无需指定版本号 pom.xml <project xmlns="http ...

  8. python简单爬去前程无忧信息招聘

    import sys reload(sys) sys.setdefaultencoding('utf-8') import requests import csv from BeautifulSoup ...

  9. python之把列表当做队列使用

    把列表当做队列使用,只是在列表中第一个加入的元素,第一个提取出来,拿列表当做队列用,效率并不高.在列表中最后添加或者删除元素速度很快,然而从列表里插入或者从头弹出速度却不快,因为其他所有元素都要一个一 ...

  10. 使用mybatis-generator插件结合tk.mybatis自动生成mapper

    本篇文章将介绍使用spring boot框架,引入mybatis-generator插件,结合tk.mybatis自动生成Mapper和Entity的一整套流程,其中包括最重要的踩坑与填坑.     ...