0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【コマンド集】Dockerで使用する基本的なコマンド【14選】

Posted at

これからDockerを使う人のために、dockerの基本的なコマンドをまとめてみました。良ければご活用ください。

Dockerについて

「そもそもDockerって何?」

結論、構築した環境を複数人で使いまわせるツールの事です。

例えば企業などで、複数人で開発を進める時に、エンジニアごとに開発環境やバージョンが異なると、思わぬエラーに遭遇する可能性があります。

しかし、同じ開発環境でそれぞれのエンジニアが開発を進めることによって、上記のような問題は大幅に回避する事ができます。それを簡単にできるようにするのが、Dockerの役割です。

ここでは、詳しい内容は省略して、基本的なコマンドを列挙していきます。もしPCにDockerが入っていない場合は、公式サイトでインストールから初めてください。

公式サイト:https://www.docker.com/





version

まずPCにDockerがインストールされているかどうか、確認しましょう。
コマンドはこちら。

$ docker --version

正しくインストールされていれば、このような表示になります。

Docker version 19.03.13

もしここで表示が異なる場合は、まだパソコンにDockerがインストールされていない可能性が高いので、公式サイトよりインストールを行いましょう。



login

Dockerを利用するには、まずログインが必要です。コマンドはこちら。

$ docker login

このコマンドを実行すると、Dockerの公式サイトで登録したログインIDと、パスワードの入力を求められます。ログインに成功したら、下記のような表示になります。

login succeeded


images

次に docker image の一覧を取得するコマンドはこちら。

$ docker images


ps

次に コンテナ の一覧を取得するコマンドはこちら。

<!-- Up状態のコンテナ一覧を取得 -->
$ docker ps

<!-- 全てのコンテナ一覧を取得 -->
$ docker ps -a

個人的によく使うのは、2つ目のコマンドですね。UpExited など関係なく、コンテナを表示してくれます。

また、コンテナごとに詳細情報を確認する方法はこちら

<!-- ハッシュ値で指定したコンテナの詳細情報を表示 -->
$ docker inspect 113289ac4d92

こちらは grepコマンド などと組み合わせて、コンテナのCPUやMemoryを確認するのに便利です。



pull

次に DockerHub からリポジトリを取得するコマンドはこちら。

$ docker pull hello-world

上記の場合、hello-world のリポジトリを docker image として取り込みます。



push

今度は逆に DockerHub に手元の docker image をアップするコマンドです。

$ docker push example/first-repo


build

次はホストにある Dockerfiledocker image にする方法です。
コマンドはこちら。

<!-- . はカレントディレクトリを示しています。 -->

<!-- docker imageを作成(名前はnone) -->
$ docker build .

<!-- 名前を指定してdocker imageを作成 -->
$ docker build -t new-ubuntu:latest .

<!-- Dockerfile名が異なる場合のコマンド -->
$ docker build -f Dockerfile.dev .

作成された docker image は、上記で紹介した $ docker images で確認できるので、作成したら正常に作られているか確認するようにしましょう。





create

次は docker image から コンテナ を作成する方法です。
コマンドはこちら。

$ docker create hello-world

作成する際は、予め $ docker images で名前かハッシュIDを確認しておきましょう。(hello-worldの部分はハッシュIDでも可能です。)

また作成したら、正常に作成されているか、$ docker ps -a で確認しましょう。



start

次は作成した(created状態の) コンテナ を起動させる方法です。
コマンドはこちら。

<!-- ハッシュIDで指定したコンテナを起動(即Exited) -->
$ docker start 113289ac4d92

<!-- ハッシュIDで指定したコンテナを起動(継続してUp) -->
$ docker start -a 113289ac4d92

またすでに一度起動を行い、Exited状態のコンテナ を起動するコマンドはこちら。

<!-- Exited状態のコンテナを再起動する -->
$ docker restart 113289ac4d92


stop

次は Up状態のコンテナExitde状態 にする方法です。
コマンドはこちら。

$ docker stop 113289ac4d92


run

次に上記で紹介したcreateコマンドstartコマンド を、一気に実行する方法です。
コマンドはこちら。

<!-- コンテナを作成し起動(名前はnone) -->
$ docker run hello-world

<!-- コンテナを作成し起動後、bashでコマンド入力できる状態(名前はnone) -->
$ docker run -it ubuntu bash

<!-- 名前をつけてコンテナを作成し起動 -->
$ docker run --name sample ubuntu

紹介しておいてあれですが、個人的には createコマンドstartコマンド はほどんど使用しておらず、ほぼ runコマンド で済ませています。

便利なので、実務でも使用する際は、こちらがメインになると思われます。

runコマンドを理解する上で、createコマンドとstartコマンドも、知っておいた方がいいと思ったので、先に記述させていただきました。



exec

次に Up状態のコンテナ でシェル(bashなど)を実行できるようにします。
コマンドはこちら。

<!-- 起動状態のコンテナにbashで操作できるようにする -->
$ docker exec -it 113289ac4d92 bash

ちなみに、Exited状態のコンテナ の場合は、エラーになってしまうので注意が必要です。

また、コンテナの操作から元の操作に戻すには、$ exit か、「ctrl」+「p」+「q」 になります。違いは、Up状態を継続するかどうかです。(後者が継続)



rm

次に Exited状態のコンテナ を削除する方法です。
コマンドはこちら。

$ docker rm 113289ac4d92

実行したら、正常にコンテナが削除されているか、$ docker ps -a で確認しましょう。

また、一括削除をしたい場合のコマンドはこちら。

$ docker system prune

途中、本当に削除するかどうかを聞かれますので、y で削除が完了します。



rmi

次に コンテナで使用されていないdocker image を削除する方法です。
コマンドはこちら。

$ docker rmi hello-world

実行したら、正常にdocker imageが削除されているか、$ docker images で確認しましょう。



まとめ

以上が Docker を扱う上で必要な、基本的なコマンドになります。 Docker は利用している企業も多いと思いますので、習得しておいて損はないかと。

最後までご覧いただき、ありがとうございました!





筆者:yuki|学習10日目で初案件獲得→現在はフルスタックエンジニア転職に向けて学習中
Qiita:https://qiita.com/yuki4839
Twitter:https://twitter.com/yuki35522891

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?