docker
それがどのように機能するかを確認するには、刺します。
ubuntu@ip-172-31-14-19:~$
ubuntu@ip-172-31-14-19:~$ sudo docker run --net=host -d -t jmar71n/freepbx
2792243260a8de33d1a775d115188e601fc556e500b5ad085e09b4133d0f3d06
ubuntu@ip-172-31-14-19:~$
ubuntu@ip-172-31-14-19:~$ sudo docker run -it jmar71n/freepbx bash
root@46f45b8973c3:/#
root@46f45b8973c3:/# exit
exit
ubuntu@ip-172-31-14-19:~$
ubuntu@ip-172-31-14-19:~$ sudo docker run -it jmar71n/freepbx bash
root@813557bf8922:/#
root@813557bf8922:/# echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
root@813557bf8922:/#
今、それぞれがrun
新しいインスタンスですか?これがプロンプトが変更された理由ですか?各?にはhostname
一意のIDがあります。run
を使用して最初のインスタンスにログインするにはどうすればよいですか--net=host
?
私が試したとき実行フラグ、次のように失敗します。
ubuntu@ip-172-31-14-19:~$
ubuntu@ip-172-31-14-19:~$ sudo docker exec -it jmar71n/freepbx bash
Error: No such container: jmar71n/freepbx
ubuntu@ip-172-31-14-19:~$
なぜ?このインスタンスにログインする正しい方法は何ですか?
ubuntu@ip-172-31-14-19:~$
ubuntu@ip-172-31-14-19:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 20c44cd7596f 2 days ago 123MB
hello-world latest 725dcfab7d63 2 weeks ago 1.84kB
jmar71n/freepbx latest 8dda2a58fde1 19 months ago 1.54GB
ubuntu@ip-172-31-14-19:~$
答え1
コマンドを実行すると、run
毎回新しいコンテナが作成されます。
run
Dockerコンテナ内に接続するオプションを使用して実行されるため、プロンプトが-it
変更されます。したがって、新しいプロンプトを使用して実行するすべてのコマンドはコンテナ内で実行されます。
アクティブプロセスを終了すると言うとexit
(bash、生成中にパラメータとして渡されたため)、PID 1を持つデフォルトプロセスが存在している間にのみコンテナが存在するため、コンテナは停止します。
インスタンスに接続するには、まず-d
デタッチモードで実行してからdocker attach
。文書でコンテナのIDを取得できますdocker ps -a
。と同じですdocker exec -it <containerID> bash
。
答え2
Dockerが実行され、新しいインスタンス(パラ仮想化)与えられたイメージの環境。
特定のインスタンスにログインするには、docker execを実行する必要があります。ログインするコンテナのIDでdocker execを実行する必要があります。これは、次のコマンドを使用して取得できます。
docker ps -a
次に ID を取得し、次のコマンドを使用してコンテナにログインします。
docker exec -it <containerid> bash