ホスト環境を汚さずに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へ続きます。
=============================
「役に立った!」「時間が削減に繋がった」という方、
よろしければ、以下からサポートよろしくお願いします。
投げ銭ページ
=============================
この記事が気に入ったらサポートをしてみませんか?