Docker学习笔记之创建安装了nginx服务器的镜像
操作步骤:
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服务器的镜像的更多相关文章
- docker学习笔记1-- 用Toolbox安装Docker--介绍Docker Machine
使用的是Docker Toolbox,非Docker for Windows 一.docker的认识与安装(windows安装) http://blog.csdn.net/tina_ttl/artic ...
- Docker学习笔记_创建和使用Centos容器
实验:创建和使用Centos容器 步骤: 1.搜索 sudo docker search cen ...
- Docker学习笔记之创建Ubuntu基础镜像
在创建基础镜像之前需要安装Bootstrap工具debootstrap,所以执行命令: sudo apt install debootstrap 软件安装完成后就可以使用debootstrap工具下载 ...
- docker学习笔记-1
docker学习笔记一:安装 mac安装docker docker官方文档上有这么一段话: Because the Docker daemon uses Linux-specific kernel f ...
- Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(一)
上一节演示如何安装Docker,链接:Docker学习笔记之-在CentOS中安装Docker 本节演示 将.net core 3.1 部署到docker容器当中,并使用 Nginx反向代理,部署平台 ...
- Docker学习笔记之--安装mssql(Sql Server)并使用Navicat连接测试(环境:centos7)
前一节演示如何使用Nginx反向代理 .net Core项目容器,地址:Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(二) ...
- Docker学习笔记之-在CentOS中安装Docker
上一节演示了如何 通过Xshell连接CentOS服务,链接:Docker学习笔记之-通过Xshell连接 CentOS服务 本节将演示 如何在CentOS中安装 Docker 第一步:更新系统包到最 ...
- docker学习笔记1 -- 安装和配置
技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...
- docker学习笔记(一)—— ubuntu16.04下安装docker
docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...
随机推荐
- 网站配置Gittalk教程和解决gittalk的Error: Not Found.问题
想把网站增加gittalk的评论功能,按照其他教程配置后,出现了 Error: Not Found. 的错误.截图如下: 网上找了很多解决方案,现在贴出来完整的配置Gittalk的教程. 01.新建评 ...
- 详细讲解docker容器和镜像的区别
当我对Docker技术还是一知半解的时候,我发现理解Docker的命令非常困难.于是,我花了几周的时间来学习Docker的工作原理,更确切地说,是关于Docker统一文件系统(the union fi ...
- Web服务器-正则表达式-小例子(3.1.2)
@ 目录 1.邮箱 2.手机号码 关于作者 1.邮箱 import re def main(): email = input("请输入一个邮件地址:") ret = re.matc ...
- CSS —— css属性
1.颜色属性 background-color: #CCCCCC; rgba (红色,绿色,蓝色,透明度) background-color: rgba( 0, 0, 0, 5 ) 2.字体属性 fo ...
- vue原理之-神奇的Object.defineProperty
vue2.0通过defineProperty进行数据双向绑定 例如:(他接受三个参数,都是必填!) var a= {} Object.defineProperty(a,"b",{ ...
- rest framework Serializer fields
串行领域 在表单类中的每个字段不仅负责验证数据,同时也为"清洁" - 它以标准化格式一致. - Django文档 串行字段手柄的原始值和内部数据类型之间的转换.他们还应对验证输入值 ...
- Python 进阶——如何正确使用 yield?
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 在 Python 开发中, yield 关键字的使用其实较为频繁,例如大集合的生成,简化代码结构.协 ...
- 微博爬虫,python微博用户主页小姐姐图片内容采集爬虫
python爬虫,微博爬虫,需要知晓微博用户id号,能够通过抓取微博用户主页内容来获取用户发表的内容,时间,点赞数,转发数等数据,当然以上都是本渣渣结合网上代码抄抄改改获取的! 要抓取的微博地址:ht ...
- 返回前端页面的属性名称和实体类的名称不一致用@JsonProperty
场景:比如前端要求你返回一个json数据类型,但是这个json类型的里面属性有的值重复了,比如 { name:zhangsan, age:12, teacher:[ name:Mrs Liu subj ...
- javap使用
在反编译前你当然需要先编译这个类了进入当前目录下:javac -g SynchronizedTest.java(使用-g参数是因为要得到下面javap -l时的输出需要使用此选项) 编译完成后,我们在 ...