これから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つ目のコマンドですね。Up
、 Exited
など関係なく、コンテナを表示してくれます。
また、コンテナごとに詳細情報を確認する方法はこちら
<!-- ハッシュ値で指定したコンテナの詳細情報を表示 -->
$ 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
次はホストにある Dockerfile
を docker 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