Dockerfileからdockerイメージを作成しました。イメージが正常に作成されたように見えますが、それを使用してどうすればよいですか。コンテナーとして実行できないのでしょうか。
Dockerに不慣れなので、多分私の側では誤解です、どんな助けでも素晴らしいでしょう。
それを実行する具体的な方法は、あなたが画像にタグ/名前を付けたかどうかによって異なります。
$ docker images
root@dockertest:~# 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
詳細については https://docs.docker.com/engine/reference/run/ を参照してください。
以下の手順を実行してください。
$ docker images
タグが指定されたすべてのローカルdocker画像のリストが表示されます。
$ docker run image_name:tag_name
tag_name
を指定しなかった場合、imageは自動的に 'latest'タグ付きで実行されます。
image_name
の代わりにImage Idを指定することもできます(tag_nameなし)。
$ docker images
$ docker run -d --restart=always -p 8080:80 image_name:version
あなたが使用してあなたのavailables画像を見ることができます
docker images
その後、デタッチモードで実行できます
docker run -d myimage
それからあなたはあなたのコンテナが走っていることをチェックすることができます
docker ps
docker psはあなたにdocker 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 [オプション]画像[コマンド] [引数...]
以下に、イメージ名または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 reference をチェックしてください。
これは、dockerでwebdevサービスを実行する例です。
画像の名前は morrisjobke/webdav です。 dockerhubから引っ張ることができます。
このイメージを実行した後は、http://localhost:8888/webdav
でWebDAVインスタンスにアクセスできます。内部的にフォルダ/var/webdav
はWebDAVルートとして使用されます。
このコンテナは次の方法で実行できます。$ docker run -d -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav
Docker-fileから画像を作成したので、その画像は現在アクティブな状態ではありません。機能するためには、コンテナの中でこのイメージを実行する必要があります。
$ 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の詳細については、 https://docs.docker.com/engine/reference/run/ を参照してください。
dockerを理解するための最良の資料です。
私は同じ問題を抱えていました。私はdockerを実行しました、そしてそれは特定のCONTAINER_IDでコンテナを作成しました、そして私は同じコンテナで働きたかったです:
最初にdockerを起動してください。
$ docker run -it -p 8888:8888 -p 6006:6006 -v〜/:/ホストwaleedka /モダンディープラーニング
それからあなたが作ったすべての容器をリストしなさい:
$ Sudo docker ps -a
そして作業したいコンテナを選択します(私のものは167ddd6d7f15です)。
$ Sudo docker start -ai 167ddd6d7f15