docker学习系列2 保存对容器的修改
docker容器虽然运行起来了。
但遇到了新的问题:
- 容器内安装的服务器是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配置文件,使其支持。 - 由于容器本身是无状态的我修改完配置文件,关闭docker,下次在启动后还是原样,我需要保存修改。
下面是解决方法:
- 容器为了精简没有按照VIM,编辑文件不方便,要先安装
apt-get update; apt-get install vim
如果执行 apt-get update 超时了,得翻墙。 -
vi /etc/nginx/sites-enabled/default
编辑并修改配置文件,记得最好先备份 - 修改完新开个窗口
先执行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
问题:
这个项目的环境是有了,但是是多人开发,我如何将我的配好的镜像分享给他人呢?
见下篇
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Ubuntu系统上All-in-one部署OpenStack
虚拟机软件:VMware Workstaion12 操作系统:Ubuntu14.04 1、修改Ubuntu14.04的apt源为国内的阿里源: cp /etc/apt/sources.list /etc/apt/sources.list.back vi /etc/apt/sources.list deb http://mirrors.aliyun.com/ubuntu/ raring main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ raring-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ raring-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ raring-proposed main restricted universe multiverse d...
- 下一篇
docker学习系列3 提交并分享自己的镜像
docker有个类似 github的平台,叫 https://hub.docker.com 可以 pull 官方或第三方提供的镜像,当然也可以发布自己的镜像供别人下载,互相学习。 大致流程: docker hub 平台注册账号 -> docker login (登录) -> docker image ls (查看本地镜像) -> docker push (如 docker push finleyma/phpenv:tp3.2) 注册完成后如果要发布本地自己制作好的镜像,要执行命令 先执行 docker image ls 查看本地存在的镜像 然后 docker push 某镜像 , 比如提交上篇制作好的镜像 image.png 刷新docker hub的个人 REPOSITORY 页面,会看到已经存在了https://hub.docker.com/r/finleyma/phpenv/ 这样的话其他项目成员可以直接执行 docker run -t -i -p 8089:80 -v [他的项目路径]:/var/www "finleyma/phpenv:tp3.2" /bin...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8编译安装MySQL8.0.19
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题