LoginSignup
19
11

More than 3 years have passed since last update.

GCEのVMインスタンス作成からDockerの利用開始まで

Last updated at Posted at 2018-12-22

背景

コンテナの学習に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のインストール

複数のインストール方法がありますが、スクリプト実行によるインストールが簡単だと思います。
※インターネットからダウンロードしたスクリプトは、実行前に必ず確認を行いましょう

参考:Get Docker CE for CentOS

[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.

参考:systemd で Docker の管理・設定

ローカルユーザーでの実行

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接続を一度終了し再接続してみてください。

19
11
1

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
19
11