docker学习系列2 保存对容器的修改

接上篇

docker容器虽然运行起来了。

但遇到了新的问题:

  1. 容器内安装的服务器是nginx,nginx对 PHPINFO 支持不好,对于ThiankPHP项目,简单的说在apache服务器下运行 http://localhost:8088/home/Index/index 能正常返回结果,而nginx返回404,必须要写成 http://localhost:8088/index.php?m=home&c=Index&a=demo
    所以我需要修改nginx配置文件,使其支持。
  2. 由于容器本身是无状态的我修改完配置文件,关闭docker,下次在启动后还是原样,我需要保存修改。

下面是解决方法:

  1. 容器为了精简没有按照VIM,编辑文件不方便,要先安装 apt-get update; apt-get install vim
    如果执行 apt-get update 超时了,得翻墙。
  2. vi /etc/nginx/sites-enabled/default 编辑并修改配置文件,记得最好先备份
  3. 修改完新开个窗口
    先执行 docker ps 查看正在运行的容器,复制 container id。
    然后 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] 如 docker commit cb439fb2c714 finley/phpenv:tp3.2
    commit 会基于对container的修改创建一个新的镜像
    具体用法请参见官方文档:commit

注意:
经查,不推荐更改运行中的容器配置,容器本身是无状态的,当然也可以通过进入容器内部的方式进行更改: docker exec -it 这样的更改是无法持久化保存的,当容器重启后,更改就丢失了,正确的做法是将需要持久化保存的数据放在挂载的存储卷中,当配置需要改变时直接删除重建。

回顾:

# 从别人那拉个镜像
docker pull eriksencosta/php-dev
# 基于上面的镜像加入了自己的修改并提交为自己的镜像,还打了tag
docker commit cb439fb2c714  finleyma/php-dev:tp3.2

问题:
这个项目的环境是有了,但是是多人开发,我如何将我的配好的镜像分享给他人呢?
见下篇

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/681832

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。