Docker

Dockerコマンドの初歩

投稿日:

さて、Dockerをインストールして、Docker Hubにアカウントを作成しました。

次は、Dockerを使用する上で必要な、初歩的なコマンドの使い方を調べてみたいと思います。

Dockerのコマンドの詳細はDocker-docs-jsのコマンドラインリファレンスを調べて下さい。かなり詳しい説明が日本語で載っていますので、かなり便利だと思います。

docker pull [イメージ名:タグ名]

Docker Hubのサイトで検索して、欲しいイメージをpullコマンドで取得します。Docker searchで検索という方法もありますが、これでは、イメージの詳細がほとんどわかりませんので、サイトで詳細を調べたほうが使いたいイメージが取得できると思います。

例として公式サイトのnginxのイメージを取得してみたいと思います。タグ名は省略すると自動的にlatestが代入されます。

docker pull nginx

docker images

イメージを取得したら、images コマンドでイメージの詳細を見てみましょう。

リポジトリ、タグ、ID、作成日、サイズが表示されています。13時間前に最新版に更新されているのがわかりますね。

docker run --name [コンテナ名] -d -p [コンテナポート:ホストのポート] [イメージ名]

runコマンドでイメージからコンテナを作成、起動します。
--nameオプションは付けたほうがいいでしょう。つけないと勝手に名前がつけられてしまいますので、使いづらいです。
-dオプションはnginxをバックグラウンドで起動します。
-pオプションはコンテナのポートとホストコンピュータのポートをつなぎます。
最後のイメージ名でもタグ名を省略すると自動的にlatestが代入されます。

尚、今回はpullコマンドでローカルにイメージを取得してからrunコマンドを実行していますが、いきなりrunコマンドでも大丈夫です。
ローカルにイメージがなければ、Docker Hubから取得してくるみたいですね。

docker run --name w.nginx -d -p 8080:80 nginx

ID、イメージ、コマンド、作成日、状況、ポート、名前と表示されています。作成日は52秒前ですね。STATUSにUPと表示されていれば起動しています。停止している場合はExitedと表示されます。

ブラウザからhttp://localhost:8080と入力してみて下さい。Nginxが起動しているのが確認できると思います。

docker stop [コンテナ名]

起動しているコンテナを停止するにはstopコマンドを使用します。コンテナ名のところはIDでも構いません。

docker start [コンテナ名]

停止しているコンテナを起動するには、startコマンドを使用します。同じくコンテナ名はIDでも構いません。

docker rm -f [コンテナ名]

コンテナを削除するにはrmコマンドを使用します。-fオプションを付けることで起動中のコンテナでも削除することができます。尚、コンテナを削除すると変更した部分も削除されますので、注意して下さい。

docker rmi  [イメージ名]

イメージを削除するには、rmiコマンドを入力します。削除時にはイメージ名は、[ リポジトリ名:タグ名 ] と入力して下さい。
タグ名を省略すると、勝手にlatestタグのイメージが削除されますので、注意して下さい。イメージ名の代わりにIDを指定しても構いません。

docker exec -it [コンテナ名] [コマンド名]

起動中のコンテナでコマンドを実行するには、execコマンドを使用します。
-iオプションと-tオプションはおまじないだと思ってつけて下さい。
詳細はコマンドリファレンスを見て下さい。

docker exec -it w.nginx bash

root@コンテナID:/# と表示され、コンテナ内でコマンドが実行できるようになります。

Nginxの環境設定ファイルをいじってみたいと思います。

vim /etc/nginx/conf.d/default.conf

ここで、Vimを使おうと思ったら、Vimがインストールされていませんでした。以下のコマンドでvimをインストールしましょう。

apt-get update
apt-get install vim

これでvimがインストールされました。vimでデフォルトのrootフォルダを使い慣れた/var/www/に変更したいと思います。

/etc/nginx/conf.d/default.cofファイルを保存したら、exitコマンドでコンテナから抜けましょう。

docker commit -p [コンテナ] [リポジトリ:タグ]

commitコマンドで修正したコンテナを元に新しいイメージを作成します。
-pオプションは起動中のコンテナを一時的に停止します。

Docker Hubに保存するには、アカウント名/リポジトリ名:タグ名にする必要がありますので、新しいイメージ名をそれに基づいて作成したほうがいいでしょう。

docker commit -p w.nginx winroad/nginx

docker push [イメージ名:タグ名]

イメージをDocker Hubに保存します。タグ名がlatestの場合は省略できます。

docker push winroad/nginx

以上、簡単ではありますが、Dockerの初歩的なコマンドを使いながら、イメージの取得、コンテナの作成、起動、停止、Docker Hubへの保存等を勉強してみました。

-Docker
-

Copyright© WinRoad徒然草 , 2018 All Rights Reserved Powered by AFFINGER5.