网站首页 > 技术文章 正文
问题
上篇文章中,我们使用以下指令完成了一个自定义的nginx静态服务
docker pull nginx
2docker run -v C:\\Users\\running-cat\\Desktop\\html:/usr/share/nginx/html -p 80:80 --name nginx-test -d nginx
但如此长的一段命令存在以下问题
- 难以维护
如此长度命令让人很难以理解,是否可以通过文件编写的方式,来完成以上的功能呢?
- 如何修改容器环境
容器是一个微型的linux环境,正如上面的nginx静态服务容器,我们如果做到像修改物理主机linux环境或者nginx的配置(如监听端口)
- 启动容器时如何加入自定义脚本
容器是用来运行我们写好的程序的,通过什么方式可以让容器启动时把我们的自定义的脚本指令一同启动呢?
- 如何制作自己的镜像
以上我们使用的是用官方的nginx镜像来完成静态服务器部署运行,正如上一篇文章看到的,远程仓库中还有许多可以实现相同功能的nginx镜像,我们是否可以制作一个自己的nginx镜像提供给大家使用呢?
使用dockerfile
我们再次来回顾指令的工作过程
- 选取镜像
docker pull nginx
- 同步文件
将物理主机的html文件同步到容器指定的目录
-v C:\\Users\\running-cat\\Desktop\\html:/usr/share/nginx/html
- 端口映射
通过指令物理主机port和容器port的关联来实现访问容器服务
-p 80:80
- 运行容器服务
docker run
将上述指令转为文件
非常庆幸的是,以上过程我们都可以通过dockerfile内置的指令来一一完成
dockerfile指令大致可以理解为
(1)基础镜像信息
(2)维护者信息
(3)镜像操作指令
(4)容器启动时执行指令
# 拉取镜像
FROM
# 维护人的信息
MAINTAINER
# 镜像构建时执行linux指令
RUN
# 复制文件
ADD
# 同步文件
VOLUME
# 当启动容器时执行的指令
CMD
# 端口暴露
EXPOSE
dockerfile的结构就是如此简单,了解了其基本结构,我们试着以dockfile的形式完成文章开头提出的问题吧。
新建Dockfile文件
FROM nginx
VOLUME ["./html","/usr/share/nginx/html"]
EXPOSE 80
执行
docker build -t nginx-test:v1 .
docker run -p 80:80 --name nginx-test nginx-test:v1
猜你喜欢
- 2024-09-27 【容器篇】认识Dockerfile dockerfile示例
- 2024-09-27 Dockerfile常用指令大全及详解 dockerfile中最常见的指令是什么
- 2024-09-27 阿里云Docker/Kubernetes(K8S) 日志解决方案与选型对比
- 2024-09-27 Docker 镜像构建之 Dockerfile docker镜像在哪个文件夹
- 2024-09-27 docker进击之Dockerfile最佳实践 dockersfile
- 2024-09-27 Dockerfile简单使用 dockerfile示例
- 2024-09-27 Dockerfile你值得拥有 dockerfile sh
- 2024-09-27 DockerFile文件详解 dockerfile文件详解java
- 2024-09-27 Docker实战九之Docker Dockerfile
- 2024-09-27 Docker篇(三):Dockerfile实战开启
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)