2016-11-18 18 views
8

Mam już działający kontener dokowania. Wprowadziłem pewne zmiany w konfiguracji, powiedzmy dodałem trochę informacji o hoście w/etc/hosts wewnątrz kontenera. Jak zachować zapisane zmiany, aby następnym razem, gdy otworzę interaktywną powłokę do kontenera, nie muszę ponownie robić tego samego? Na razie stworzyłem mini skrypt jako addhosts.sh jak poniżej w kontenerze i muszę go uruchomić za każdym razem.Skrypt uruchamiania kontenera dokera

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

Jest to jeden z przypadków. Podobnie, potrzebuję całej mojej konfiguracji, aby była nienaruszona. Proszę nie sugerować dla dockerfile, ponieważ nie tworzę obrazu, raczej właśnie dostaję się do pojemnika.

Odpowiedz

8

Można zatwierdzić zmiany wprowadzone przez: odniesienie

Krótki rozkazu:

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

Przykład:

docker commit c3f279d17e0a svendowideit/testimage:version3 

Pełna referencyjny:

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 <[email protected]>") 
    -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) 

Następnie można użyć docker images, aby wyświetlić nowy obraz po zatwierdzeniu.

Aby uruchomić pojemnik z nowego obrazu:

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

Innym sposobem byłoby stworzenie własnego wizerunku poprzez: dockerfile, jestem tylko wprowadzenie go tutaj tylko okrywać możemy pomóc innym.

+0

Dzięki za szybką odpowiedź. Czy ma również zastosowanie do opuszczonych kontenerów? Coz mój pojemnik się skończył. Zrobiłem zatwierdzenie dockera dla kontenera, a następnie wyszedłem, zacząłem i załączałem. Ale nie widzę swoich konfiguracji nienaruszonych. –

+0

Jak uruchomić swój pojemnik? Powinieneś dołączyć stworzoną wersję.Tak jak w przykładzie 'docker run svendowideit/testimage: version3' –

+1

Wykonując poniżej: ' port dokera start 44372579f2ea' 'dok doładowania 44372579f2ea' –

2

Użyj docker commit, aby zrobić migawkę swojego kontenera.

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 <[email protected]>") 
    -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

Czy spojrzenie na https://docs.docker.com/engine/reference/commandline/commit/

Do uruchomić migawkę pojemnika Döcker dodać wersję uruchomić komendę. Jak na przykład uruchomić

docker run svendowideit/testimage:version3

4

Zakładając, że nie chcą, aby zapisać zmiany do nowego obrazka:

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 

To by połączyć się z pojemnika, należy uruchomić komendę i wyjść bez zabijania pojemnik.

zauważyć różnicę między:

docker exec -it container_id ... = does not kill the container. 
docker run -it container_id ...= kills the container 
Powiązane problemy