回答:
イメージを実行する具体的な方法は、イメージにタグ/名前を付けたかどうかによって異なります。
$ docker images
REPOSITORY TAG ID CREATED SIZE
ubuntu 12.04 8dbd9e392a96 4 months ago 131.5 MB (virtual 131.5 MB)
名前付き(Ubuntuを使用しましょう):
$ docker run -i -t ubuntu:12.04 /bin/bash
名前なしで、IDを使用します。
$ docker run -i -t 8dbd9e392a96 /bin/bash
詳細については、Docker runリファレンスをご覧ください。
docker ps
画像ではなくコンテナをリストします。コンテナからイメージを作成する場合は、する必要がありdocker commit
ます。NAMEをコミットで使用できます(例:docker commit _NAME_ _imagename_
)
次の手順を実行します。
$ docker images
タグが指定されたすべてのローカルDockerイメージのリストが表示されます。
$ docker run image_name:tag_name
指定しなかった場合はtag_name
、 'latest'タグが付いたイメージが自動的に実行されます。
の代わりにimage_name
、イメージID(tag_nameなし)を指定することもできます。
Dockerイメージを一覧表示するには
$ docker images
アプリケーションがポート80で実行したい場合、別のポートを公開してローカルにバインドできます。たとえば、8080:
$ docker run -d --restart=always -p 8080:80 image_name:version
以下を使用して、使用可能な画像を表示できます。
docker images
その後、デタッチモードで実行して、ターミナルを引き続き使用できます。リポジトリ名(タグの有無にかかわらず)またはイメージIDを使用して実行するには、いくつかのオプションがあります。
docker run -d repository
docker run -d repository:tag
docker run -d image_id
次に、コンテナを使用して実行されていることを確認できます
docker ps
docker ps
コンテナIDを提供します。それを使用するか、最初の2/3文字だけを使用して、次のようにコンテナに移動できます。
docker exec -it container_id /bin/bash
そして、とを使用docker stop container_id
してそれを停止できますdocker rm container_id
。
-rm
引数を指定してコンテナを実行することもできるため、コンテナを停止すると、コンテナは自動的に削除されます。
次のコマンドを使用して、実行するイメージの名前またはIDを取得します。
docker images
Docker runコマンドは次のように使用されます。
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
以下に、イメージの名前またはIDを指定する前に、ディスパッチ、名前、公開、ボリューム、および再起動オプションを含めました。
docker run -d --name container-name -p localhost:80:80 -v $HOME/myContainer/configDir:/myImage/configDir --restart=always image-name
どこ:
--detach , -d Run container in background and print container ID
--name Assign a name to the container
--publish , -p Publish a container’s port(s) to the host
--volume , -v Bind mount a volume
--restart Restart policy to apply when a container exits
詳細については、公式のDocker runリファレンスをご覧ください。
Dockerでwebdevサービスを実行する例を次に示します。画像の名前はmorrisjobke / webdavです。Docker Hubからプルできます。
これらのイメージを実行した後、でWebDAVインスタンスにアクセスできますhttp://localhost:8888/webdav
。内部的には、フォルダー/var/webdav
はWebDAVルートとして使用されます。
このコンテナは次の方法で実行できます。
$ docker run -d -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav
私も同じ問題を抱えていました。私はDockerイメージを実行し、特定のCONTAINER_IDを持つコンテナーを作成しました。同じコンテナで作業したかった:
まず、Dockerイメージを実行します。
docker run -it -p 8888:8888 -p 6006:6006 -v ~/:/host waleedka/modern-deep-learning
次に、作成したすべてのコンテナをリストします。
sudo docker ps -a
そして、操作したいコンテナーを選択します(私は167ddd6d7f15です):
sudo docker start -ai 167ddd6d7f15
Dockerfileからイメージを作成したので、イメージは現在アクティブな状態ではありません。機能させるには、このイメージをコンテナ内で実行する必要があります。
この$ docker images
コマンドは、ローカルリポジトリで現在使用可能なイメージの数を示します。そして
docker ps -a
現在利用可能なコンテナの数、つまりアクティブなコンテナと終了したコンテナのリストを示します。
コンテナーでイメージを実行するには、2つの方法があります。
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
デタッチモードの場合:
-d=false: Detached mode: Run container in the background, print new container id
インタラクティブモードの場合:
-i :Keep STDIN open even if not attached
これがDocker runコマンドです
$ docker run image_name:tag_name
Docker runの詳細については、Docker runリファレンスをご覧ください。
Dockerを理解するのに最適な資料です。
Dockerホスト上のすべてのイメージのリストを表示するには、次のコマンドを実行します。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
apache_snapshot latest 13037686eac3 22 seconds ago 249MB
ubuntu latest 00fd29ccc6f1 3 weeks ago 111MB
これで、Dockerイメージをコンテナとしてインタラクティブモードで実行できます。
$ docker run -it apache_snapshot /bin/bash
または、ローカルに画像がない場合は、ダウンロードする画像をDocker Hubで検索します。
$ docker search ubuntu
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian... 6759 [OK]
dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openss... 141 [OK]
rastasheep/ubuntu-sshd Dockerized SSH ser... 114 [OK]
ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS w... 88 [OK]
ubuntu-upstart Upstart is an even... 80 [OK]
docker pullコマンドを使用して、リポジトリからDockerイメージをプルします。
$ docker pull ubuntu
Dockerイメージをコンテナーとして実行します。
$ docker run -it ubuntu /bin/bash
$ docker images
REPOSITORY TAG IMAGE ID CREATED
jamesmedice/marketplace latest e78c49b5f380 2 days ago
jamesmedice/marketplace v1.0.0 *e78c49b5f380* 2 days ago
$ docker run -p 6001:8585 *e78c49b5f380*
同じ問題が発生したが、次のようなエラーが発生した場合
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"bash\": executable file not found in $PATH"
私のために働いたエントリーポイントを追加しました:
docker run -it --entrypoint /bin/sh
バッシュなしの画像の場合。
例(承認済みの例から):
run -it --entrypoint /bin/sh ubuntu:12.04
docker ps -a
はここで は役に立ちませんか?