web-dev-qa-db-ja.com

「exit」の使用後にdocker Alpineコンテナーを保持する方法

たとえば、コマンドdocker run -it Alpine /bin/shを使用すると、ターミナルが起動し、その後パッケージとすべてをインストールできます。 exitコマンドを使用すると、ターミナルに戻ります。 (主なもの)

では、どうすれば同じコンテナに再度アクセスできますか?そのコマンドをもう一度実行すると、新鮮なアルパインが手に入ります。

助けてください

9
shubham-kamath

コンテナは、指定されたコマンド実行プロセスがまだ実行されている限り存続します。 /bin/shの実行を指定すると、終了するとshプロセスが停止し、コンテナーも停止します。

コンテナーを実行し続けたい場合は、内部のプロセスを実行し続ける必要があります。あなたの場合(あなたが何をしたいのか分かりません、私はあなたがテストしているだけだと思います)、以下はそれを実行し続けます

docker run -d --name Alpine alpine tail -f /dev/null

次に、shを使用してコンテナに

docker exec -it Alpine sh  
14
yamenk

停止したコンテナを開始できるdocker startを使用する必要があります。コンテナに名前を付けなかった場合は、docker psを使用して名前/ IDを取得する必要があります。

例えば、

$docker ps
CONTAINER ID        IMAGE                        COMMAND
4c01db0b339c        Alpine                       bash    

$docker start -i -a 4c01db0b339c   
2
logix

画像をプル

docker image pull Alpine

その画像がそこにあるのを見てください

docker image ls   OR  just docker images

高山の中に何があるかを見てください

docker run Alpine ls -al

さてあなたの質問はシェルと一緒にいる方法です

docker container run -it Alpine /bin/sh

シェルスクリプトコマンドラインの内部にいる。一部のディストリビューションにはbashシェルが含まれている場合があります。

 docker exec -it 5f4 sh
 / # (<-- you can run linux command here!)

この時点で、アルパインのコマンドラインを使用して実行できます

ls -al

exitと入力して出てきます-デタッチモードで実行すると、実行を続けます。

Execコマンドを使用して、再度ログインできます

docker container run -it -d Alpine /bin/sh

稼働していることを確認し、コンテナIDの最初の2〜3桁をコピーします

docker container ls

execコマンドでログイン

docker exec -it <CONTAINER ID or just 2-3 digits> sh

停止する必要があります。そうしないと、実行を続けます。

docker stop <CONTAINER ID>
2
vimal krishna

あなたがすべきことは以下です

docker run -d --name myalpine Alpine tail -f /dev/null

これにより、コンテナが死ぬことはありません。今あなたがあなたの中にパッケージをインストールする必要がある時はいつでもちょうどshを使ってコンテナの中に入る

docker exec -it myalpine /bin/sh

なんらかの理由でコンテナが停止した場合でも、次のコマンドを使用して再開できます

docker start myalpine
1
Tarun Lalwani

バックグラウンドでAlpineを実行する

$ docker run --name alpy -dit Alpine
$ docker ps

アルパインに取り付ける

$ docker attach alpy
1
user3224696