背景
コンテナの学習にGCPを使用しています。
Dockerのテスト用にGCEのVMインスタンスを作成することが何度かあったので、その手順を記載します。
VMインスタンスの作成
docker-sample
という名称で、CentOS7のVMインスタンスを作成します。
コンソールから作成するか、以下のようなコマンドを実行します。
--project
には自身のプロジェクト名を指定してください。
$ gcloud beta compute --project=yourproject instances create docker-sample \
--zone=asia-northeast1-b --machine-type=n1-standard-1 --image=centos-7-v20181210 \
--image-project=centos-cloud --boot-disk-size=10GB --boot-disk-type=pd-standard \
--boot-disk-device-name=docker-sample
作成したVMインスタンスにSSHで接続すれば、事前準備は完了です。
Dockerのインストール
複数のインストール方法がありますが、スクリプト実行によるインストールが簡単だと思います。
※インターネットからダウンロードしたスクリプトは、実行前に必ず確認を行いましょう
[user@docker-sample ~]$ curl -fsSL https://get.docker.com -o get-docker.sh
[user@docker-sample ~]$ sudo sh get-docker.sh
-f
: サーバーエラーを出力しない
-s
: 進捗、エラーを表示しない
-S
: エラーを表示する(-s
と同時に使用)
-L
: リクエストページが移動していた場合、移動先で再実行する
Dockerのインストールに成功すると、バージョン確認ができるようになります。
[user@docker-sample ~]$ sudo docker version
Client:
Version: 18.09.0
API version: 1.39
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:48:22 2018
OS/Arch: linux/amd64
Experimental: false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Dockerデーモンの起動
バージョンの確認では、最終行にDockerデーモンに接続できないというメッセージが表示されていました。
この状態ではDockerを利用することはできません。
[user@docker-sample ~]$ docker container run hello-world
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.
Dockerを利用するためには、Dockerデーモンを起動する必要があります。
[user@docker-sample ~]$ sudo systemctl start docker
[user@docker-sample ~]$ sudo docker container run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
-- 以下略
ただし、VMを再起動すると再びDockerを利用できなくなります。
VMの起動時に毎回Dockerデーモンを起動しなくてはなりません。
Dockerデーモンを自動起動する場合は、次のコマンドを実行します。
[user@docker-sample ~]$ sudo systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
ローカルユーザーでの実行
Dockerは初期状態ではrootユーザーでのみ利用できるので、sudo
をつけてコマンドを実行しなければなりません。
sudo
をつけなかった場合はエラーとなります。
[user@docker-sample ~]$ docker container run hello-world
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
ローカルユーザーでDockerを利用するためには、次のコマンドを実行します。
[user@docker-sample ~]$ sudo usermod -aG docker youruser
[user@docker-sample ~]$ docker container run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
(以下略)
※うまく実行できない場合は、SSH接続を一度終了し再接続してみてください。