web-dev-qa-db-ja.com

Dockerイメージをコンテナーとして実行する

Dockerfileからdockerイメージを作成しました。イメージが正常に作成されたように見えますが、それを使用してどうすればよいですか。コンテナーとして実行できないのでしょうか。

Dockerに不慣れなので、多分私の側では誤解です、どんな助けでも素晴らしいでしょう。

458
boom

それを実行する具体的な方法は、あなたが画像にタグ/名前を付けたかどうかによって異なります。

$ 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/ を参照してください。

656
Andy

以下の手順を実行してください。

  1. $ docker images

    タグが指定されたすべてのローカルdocker画像のリストが表示されます。

  2. $ docker run image_name:tag_name

    tag_nameを指定しなかった場合、imageは自動的に 'latest'タグ付きで実行されます。

    image_nameの代わりにImage Idを指定することもできます(tag_nameなし)。

58
  • 港湾労働者の画像を一覧表示するには
$ docker images
  • あなたのアプリケーションがポート80で実行したい場合、あなたはローカルにバインドするために別のポートを公開できます
$ docker run -d --restart=always -p 8080:80 image_name:version
29

あなたが使用してあなたの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_iddocker rm container_idを使ってそれを止めることができます

コンテナーを-rm引数で実行することもできます。コンテナーを停止すると、コンテナーは自動的に削除されます。

12
amdev

このコマンドで実行したいイメージの名前または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 をチェックしてください。

8
JSON C11

これは、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

3
Yang Yu

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を理解するための最良の資料です。

2
Hemant Kumar

私は同じ問題を抱えていました。私は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

2
farnaz jazayeri