docker學習系列2 儲存對容器的修改

2021-09-19 18:58:26 字數 1192 閱讀 4053

接上篇

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

問題:

這個專案的環境是有了,但是是多人開發,我如何將我的配好的映象分享給他人呢?

見下篇

Docker學習系列 Docker簡介

docker 是乙個開源的應用容器引擎,基於 go 語言 並遵從apache2.0協議開源。docker 可以讓開發者打包他們的應用以及依賴包到乙個輕量級 可移植的容器中,然後發布到任何流行的 linux 機器上,也可以實現虛擬化。乙個完整的docker 有以下幾個部分組成 1.dockerclie...

docker學習系列(三)docker使用

緊接著之前的部落格,這一篇主要寫如何使用docker 系列1 docker簡介 系列2 docker安裝 docker的官方提供了乙個官方的映象市場可以搜尋一些映象檔案,比如centos,jdk等 當然我們一般都不會使用這種方式來獲取一把都是通過命令列首先用 docker search keywor...

Docker學習系列(一)Docker簡介

簡介 docker是乙個在全球範圍領先的軟體容器平台。開發人員可以使用容器來在協作過程中遇到的解決 不同環境配置 的問題。例如,在傳統的開發環境下,開發人員編寫 然後交由測試人員測試,但是因為各自配置的環境不同,這樣所開發和測試的結果就會不同 但是,如果使用docker的話,這個問題就不存在了。do...