Docker创建安装了nginx服务器的镜像

操作步骤:

1. 编辑Dockerfile

2. 使用build命令创建镜像

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

 

  • 编辑Dockerfile

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

FROM ubuntu:latest
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:设置与主机相连的端口号

Docker创建安装了nginx服务器的镜像

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

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

Docker创建安装了nginx服务器的镜像

                              ......

Docker创建安装了nginx服务器的镜像

可以看到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端口连接起来,并暴露到外面。

Docker创建安装了nginx服务器的镜像 

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

Docker创建安装了nginx服务器的镜像

 

<style></style>
上一篇:Symetric NAT和Restricted Cone NAT


下一篇:ubuntu13.10更新sources.list