簡體   English   中英

docker容器的啟動腳本

[英]Startup script for a docker container

我有一個已經運行的docker容器。 我做了一些配置更改,比方說在容器內的/ etc / hosts中添加了一些主機信息。 如何保存更改,以便下次當我打開交互式shell到容器時,我不必再做同樣的事情了? 現在我已經在容器內創建了一個mini腳本,如下面的addhosts.sh,每次都要運行它。

echo "1.2.3.4 server1.example.com gluster1" >> /etc/hosts
echo "5.6.7.8 server2.example.com gluster2" >> /etc/hosts

這是其中一個案例。 同樣,我需要所有配置都完好無損。 請不要建議使用dockerfile,因為我沒有創建圖像,而是我剛剛進入容器。

您可以提交您所做的更改:

短命令參考:

docker commit <container id or name>  <repository name>/<your image name>:<tage aka version>

例:

docker commit c3f279d17e0a  svendowideit/testimage:version3

完整參考:

Usage:  docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

Create a new image from a container's changes

Options:
  -a, --author string    Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")
  -c, --change value     Apply Dockerfile instruction to the created image (default [])
      --help             Print usage
  -m, --message string   Commit message
  -p, --pause            Pause container during commit (default true)

然后,您可以使用docker images在提交后查看新圖像。

要從新圖像運行容器:

docker run -d svendowideit/testimage:version3 <optional startup command>

另一種方法是通過以下方式創建自己的圖像: dockerfile ,我只是把它放在這里,只是因為我們可以幫助別人。

假設您不希望將更改保存到新圖像中:

docker exec -it container_id echo "1.2.3.4 server1.example.com gluster1" >> /etc/hosts
docker exec -it container_id echo "5.6.7.8 server2.example.com gluster2" >> /etc/hosts

這將連接到容器,運行命令並退出而不會殺死容器。

請注意以下內容之間的區別:

docker exec -it container_id ... = does not kill the container. 
docker run -it container_id   ...= kills the container 

使用docker commit拍攝容器的快照。

Usage:  docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

Create a new image from a container's changes

Options:
  -a, --author string    Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")
  -c, --change value     Apply Dockerfile instruction to the created image (default [])
      --help             Print usage
  -m, --message string   Commit message
  -p, --pause            Pause container during commit (default true)

Example: docker commit c3f279d17e0a svendowideit/testimage:version3

請查看https://docs.docker.com/engine/reference/commandline/commit/

運行 docker容器的快照 ,請添加要運行的版本命令。 至於運行示例

docker run svendowideit/testimage:version3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM