1.docker for windows のインストール
まずはdocker for windowsのインストールです。
※windows 10 Proを対象としたインストール手順になります。
windows10 Proでdockerを使用する場合は、Hyper-Vという仮想化システムを利用することになります。
ということで、まずは Hyper-V が有効化されているかどうかを確認します。
[コントロールパネル]->[プログラム]->[Windowsの機能の有効化または無効化]を開き、Hyper-Vの設定の欄に☑を入れます。
OKを押下するとシステム構成の変更が始まり、再起動が要求されると思うので、ウィンドウに従い、再起動してあげます。
再起動後、Docker HubからDocker Desktop on Windowsをダウンロードします。
https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe
※Docker Hubへの登録(無料)が必要です。(以降イメージを探したりする際に役に立つので登録しておいて損はないでしょう)
※今回自分がダウンロードしたバージョンはDocker Desktop 2.1.0.1でした。
ダウンロードしたインストーラを実行すると、Docker Desktopのインストールが開始されます。
インストールウィザードではWindowsコンテナを使うかどうかを聞かれます。
CentやUbuntuなどLinux系のコンテナを使用する場合は☑を外しておきます。※両方を同時に使用することはできないようです。
10分程度でインストールは完了します。
インストールが完了したら、いよいよ Docker Desktop on Windows を立ち上げます。
起動自体はアイコンをクリックするだけですが、ウィンドウが開かないので注意です。
docker起動中は画面右下の通知トレイの中にアイコンが登場するのでここで状態を確認したり、設定を変更したりします。
初回の起動自体も10分程度で終わり、下のようなWelcomeページが表示されます。loginしなくてもdockerは普通に使用できます。
これでdockerのインストール作業は一通り完了です。
基本的にデフォルトで十分使えるかと思いますが、もし設定等を変更したい場合は、dockerのアイコンを右クリックして、settingsを選択します。
2.イメージのpull(ダウンロード)
dockerのコンテナ作成の流れはざっくりと以下の感じで行います。
①Docker Hubからコンテナイメージをダウンロード(pullコマンド)
②ダウンロードしたコンテナイメージを使用してコンテナを作成(runコマンド)
※runコマンドを実行すると自動的に①も実行されるので、①は省略可。
pull(コンテナイメージのダウンロード)コマンドは以下の形式です。> docker pull <レポジトリ/イメージ>
例えば、centosの場合は以下のような省略の指定で最新版が取得できます。> docker pull centos
イメージ名の指定・省略方法はDocker Hubの各リポジトリのページに記載してあるので参考にしましょう。
pullしたコンテナイメージがイメージ一覧に追加されていることが分かります。> docker images
3.コンテナ作成
コンテナの作成方法にはいくつかのパターンがありますが、今回は自分がよく使う2パターンを紹介します。
3-A 普通に起動するパターン
普通にログインして操作ができるコンテナを作成して、バックグラウンドで実行する場合は以下のコマンドで起動します。> docker run -i -t -d --name <コンテナ名> <イメージ名> /bin/bash
オプションについて軽く触れておくと、-iがコンテナの標準入力にアタッチ、-tが操作端末の割り当て、-dがバックグラウンド実行になります。
-itdのようにまとめて書くこともできます。
末尾の/bin/bashはシェルに何を使うかを指定します。
3-B コンテナに拡張権限を与えるパターン
コンテナ内でsystemctl等を使用したい場合は以下のコマンドで起動します。> docker run --privileged -itd --name <コンテナ名> <イメージ名> /sbin/init
また、以下のコマンドでコンテナ一覧を確認するとコンテナが作成されていることが分かります。> docker ps -a
4.コンテナへのログイン
実際に作成したコンテナに入る場合は以下のコマンドになります。> docker attach <コンテナ名>
コンテナから出るときは普通にexitコマンドでOKです。
5.コンテナの起動停止
一度作成したコンテナを次回以降、起動/停止する場合は以下のコマンドになります。
コンテナの起動> docker start <コンテナ名>
コンテナの停止> docker stop <コンテナ名>
※コンテナ停止させずにホストのwin10をシャットダウンしても特に何も起きませんでしたが、コンテナを停止させてからシャットダウンするのが無難でしょう。
6.ホスト↔コンテナ間のファイルのコピペ
コンテナ→ホストへのコピー > docker cp <コピー元> <コンテナID>:<コピー先のフルパス>
ホスト(win10)→コンテナへのコピー> docker cp <コンテナID>:<コピー元ファイルのフルパス> <コピー先>
※FTP/SFTP等でファイルのやり取りをしたい場合は、ホスト↔コンテナ間のネットワークを設定が別途必要になります。
↓過去記事でまとめているので、もし良ければ参考にしてください。
7.コンテナ/イメージの削除
コンテナの削除> docker rm <コンテナ名(またはID)>
コンテナイメージの削除> docker rmi <イメージ名(またはID)>
8.コンテナ/イメージのバックアップと復元
8-A バックアップ
コンテナのバックアップ> docker export -o <コンテナID> <保存先のファイル名>
コンテナイメージのバックアップ> docker save -o <イメージID> <保存先のファイル名>
※“-oを付けないと、”archive/tar: invalid tar header”で復元できなくなるので注意。
※ファイルの拡張子は.tarとか.tgzでOK。docker側は意識してなさそうです。
8-B 復元
コンテナの復元> docker import <バックアップファイル>
イメージの復元> docker load -i <バックアップファイル>
参考
公式ドキュメント
↑windowsでdockerをがっつり使おうと思っている方は是非ご一読を。
Windows上でDocker使ってはまった事一覧
Docker for Windowsでイメージからコンテナを生成/操作してみる
コメント