ホスト環境を汚さずにGCP開発を行う準備(Docker)その1

前回の続き。

なぜDockerを利用したのか

  • ● Docker利用経験がなく触ってみたかったから
    ● DockerならローカルPCの環境を汚さずに済むと聞いたから
    ● クラウドにデプロイするのが簡単と聞いたから(ただし、今回はコンテナをデプロイするわけではないので、本メリットを享受できていない)

自分の環境

  • ● ホスト端末:MacBook
    ● 作業日:2019年5月

コンテナとホストマシンのインターフェイス

  •  「マウント」「ポート」があります。
    マウントでは、ホストとコンテナのファイルを共有することができます。使い所としては、例えば設定ファイルを共有しておくことで、コンテナ初期化(バージョンアップ)した際も設定を引き継いだりできるようにするようです。今回はソースを共有するようにします。
     ポートはフォワーディング設定ができます。ホストの端末の8080にアクセスしたら、コンテナの8080に通信を転送することができます。よって、今回はコンテナ内で立ち上げるアプリサーバーを8080ポートで立ち上げ、アクセス時にはホストの8080ポートにアクセスします。
     注意点としては、この「マウント」「ポート」の設定は最初の構築起動時にしかできません。

手順

1.Docker For Mac のインストール

以下を参考にDockerを端末で使えるようにします。
● DockerをMacにインストールする

2.コンテナを作成・起動する

コンテナのイメージを検索してみると、”google/cloud-sdk”があるのでこのイメージを利用します。

# docker search google/cloud-sdk

NAME                                                  DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
google/cloud-sdk                                      Google Cloud SDKbundle with all components a…   245                                     [OK]
az3r/golang-google-cloud-sdk-google-cloud-appengine   golang, google-cloud-sdk and google-cloud-ap…   2                                       [OK]
boiyaa/google-cloud-sdk-nodejs                        Google Cloud SDK w/ Node.js                     1                                       [OK]
dolphm/ubuntu-google-cloud                            The latest Ubuntu image containing the Googl…   1
mrsvan/google-cloud-sdk-app-engine-java               Minimal image for building and uploading Goo…   1                                       [OK]

コンテナは”run”コマンドで構築起動できます。起動時にはローカルに指定のイメージがあるか探索し、なければネットからダウンロードしてきてくれます。コンテナの名前は"gcptest"にしています。 また、利用しているオプションは以下の通りです。

● v : マウントディレクトリ設定 {ホストディレクトリ}:{コンテナディレクトリ}を指定
● p : ポートフォワーディング設定 {ホストポート}:{コンテナポート}を指定
● w : ワーキングディレクトリ設定 {コンテナディレクトリ}を指定
● name : 任意のコンテナ名設定

docker run -it -v /Users/xxxx/work/pyapp:/opt/pyapp -p 8080:8080 -w /opt/pyapp --name gcptest google/cloud-sdk

3.コンテナ上でコマンドが利用できることを確認する

これだけで、コンテナ内で”gcloud”や”python”が利用できます。

(コンテナ)# gcloud --version
Google Cloud SDK 243.0.0
alpha 2019.04.19
app-engine-go
app-engine-java 1.9.73
app-engine-python 1.9.85
app-engine-python-extras 1.9.85
beta 2019.04.19
bigtable
bq 2.0.43
cbt
cloud-datastore-emulator 2.1.0
core 2019.04.19
datalab 20190116
gsutil 4.38
kubectl 2019.04.19
pubsub-emulator 2019.04.19

(コンテナ)# python3 --version
Python 3.5.3

(備考)よく利用するコマンド

ログイン:docker exec -it gcptest /bin/bash
ログアウト:(ログイン時)"control + D"
コンテナ起動:docker start gcptest
コンテナ停止:docker stop gcptest
コンテナ削除:docker rm gcptest
起動コンテナ一覧表示:docker ps
コンテナ一覧表示:docker ps -a

コンテナ内の開発環境準備はその2へ続きます。

=============================
「役に立った!」「時間が削減に繋がった」という方、
よろしければ、以下からサポートよろしくお願いします。
投げ銭ページ
=============================

この記事が気に入ったらサポートをしてみませんか?