へっぽこプログラマーの備忘録
プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。
menu
keyboard_arrow_up
Top
search
close
home
ホーム
computer
PC一般
construction
開発環境・ツール
code
プログラミング
home
ホーム
computer
PC一般
construction
開発環境・ツール
code
プログラミング
Home
›
Google Cloud Platform
›
GCP で Docker を使う
2020/07/27
GCP で Docker を使う
update
event_note
label
Google Cloud Platform
Google Cloud Platform の無料枠内で Docker を使ってみました。
とりあえず今回使うのは GCE (Google Compute Engine) です。 本格的にやるなら GKE (Googke Kubernetes Engine) のほうがいいみたいですが、よくわかりません。 ## 無料枠の確認 以下で確認できます。 - https://cloud.google.com/free/?hl=ja 今回は GCE を使うので、2019/06/23 現在の条件は以下になります。
## 前提 以下は済んでいる前提です。 - Googleアカウントの作成 - Google Cloud Platform の利用登録 ## GCP の設定 ### プロジェクトの作成 まずは適当にプロジェクトを作成して選択します。 ### VM インスタンスの作成 サイドメニューから Compute Engine > VM インスタンスを選択します。
作成をクリックします。
以下のように設定して、作成をクリックします。 - 名前は適当に入力 - マシンタイプは f1-micro を選択 - リージョンは 無料枠対象の米リージョンを選択(ゾーンは適当) - OS は Ubuntu 19.04 Minimal を選択 - 最初は Docker コンテナの実行に最適化されている Container-Optimized OS にしていましたが、何故かスワップの設定ができなかったため断念 - ディスクのサイズを 30GB に変更 - 「HTTP トラフィックを許可する」「HTTPS トラフィックを許可する」にチェック
尚、無料枠で収まっていれば、画面の右側に以下のように表示されます。 > 今月の f1-micro インスタンス使用量は、最初の 720 時間分が無料です。
### 外部 IP アドレスの設定 VM インスタンスを再起動しても IP アドレスが変わらないように静的 IP アドレスを割り当てます。 サイドメニューから VPC ネットワーク > 外部 IP アドレスを選択します。
### ファイアウォールの設定 外部からアクセスできるように、必要に応じてポートの解放を行います。 ## OS の設定 ### SSH で接続 VM インスタンスに SSH で接続します。 いくつかやり方はありますが、手っ取り早く接続するために、ブラウザからインスタンスの SSH をクリックして接続します。
### Swap の設定 メモリ不足になるという話をよく聞くので、スワップを追加しておきます。 #### 現在のスワップを確認 ```sh $ free -m ``` #### スワップの追加 以下のコマンドを実行します。 ```sh $ sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 $ sudo chmod 600 /swapfile $ sudo mkswap /swapfile $ sudo swapon /swapfile ``` **簡単な解説** ``` $ sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 ``` dd コマンドは、if で指定したファイルを、of で指定したファイルへ、 bs に指定された入出力ブロックサイズ単位で、count に指定された回数コピーを実行するコマンドです。 `if` に `/dev/zero` を指定しているので、`/swapfile` の中身はすべて 0 で埋め尽くされたファイルとなります。 `bs=1M` で `count=4096` なので、ブロックサイズ(1M)×4096 のサイズのファイルが作成されます。 ここでは 4GB となります。 ``` $ sudo chmod 600 /swapfile ``` 作成した `swapfile` の権限を root のみに変更します。 ``` $ sudo mkswap /swapfile ``` 作成した `swapfile` をスワップ領域として設定します。 ``` $ sudo swapon /swapfile ``` スワップ領域を設定しただけではダメなので、 スワップを有効化します。 #### ブート時にスワップを有効化 ブート時にスワップを有効になるように永続化します。 ### Docker のインストール ``` sudo apt-get install docker ``` ``` sudo apt-get install docker-compose ```
## 参考 URL - https://yakoi.qrunch.io/entries/HFbmdSlpB4qyqZx7 - https://sakura-bird1.hatenablog.com/entry/2019/03/12/034009 - https://qiita.com/suzukenz/items/4ecafd341e012102a6e9 - https://gist.github.com/koudaiii/0ed6a8558aa297af463e
tweet
facebook
Pocket
B!
はてブ
LINE
chevron_left
chevron_right
Translate
Popular Posts
TortoiseGit でコミットメッセージを変更する
image
NO IMAGE
smbclient で session setup failed: NT_STATUS_LOGON_FAILURE が表示される
Docker for Windows の設定
image
NO IMAGE
マージ元ブランチとマージ先ブランチ
image
NO IMAGE
TortoiseSVN ロック状態のチェック
TortoiseGit でブランチ間の差分を見る
image
NO IMAGE
Visual Studio で文字がにじむ(ぼやける)
image
NO IMAGE
AsciidocFX をビルドする
image
NO IMAGE
PowerShellでブレークポイントが設定できない場合
[Python] 文字列の判定で、None と空文字を同時に判定する
Labels
.NET Core
31
.NET Framework
17
.NET Standard
2
AdminLTE
1
AI
1
Apache
3
AppVeyor
2
AsciiDoc
7
ASP.NET Core
55
Atom
4
AWS
5
AWS Cloud9
4
blockdiag
1
Blogger
13
Bootstrap
3
C/C++
6
C#
106
CentOS
3
Chrome
1
Chronograf
3
chrony
1
Codecov
1
CSS
1
Docker
80
DokuWiki
4
Doxygen
1
draw.io
1
EasyTag
1
Electron
1
Electron.NET
2
Entity Framework Core
9
Excel
2
FFmpeg
3
Firefox
6
Flask
1
Git
19
GitBook
4
GitBucket
7
GitHub
7
GitLab
39
Go
1
Google
1
Google Cloud Platform
1
Grafana
13
GStreamer
2
HTML
5
IIS
8
InfluxDB
14
JavaScript
15
Jekyll
2
Jenkins
7
Linux
34
Log4View
1
MahApps.Metro
3
MaterialDesignInXamlToolkit
1
MkDocs
2
MongoDB
5
MVC
1
MVVM
6
nginx
3
NLog
3
Node.js
8
npm
1
NVIDIA
3
onvif
1
OpenAPI
2
OpenCV
4
OpenSSL
3
OpenVINO
2
ownCloud
2
pandas
1
Pine Script
1
PlantUML
5
Portainer
3
PowerShell
8
Prism
2
PySide
19
Python
88
PyTorch
1
RabbitVCS
1
Razor
3
redis
1
Redmine
33
Redoc
1
remark.js
2
rocketchat
10
Ruby
3
scikit-learn
1
shotcut
1
SignalR
1
Slack
1
Socket.IO
1
SonarQube
5
Sphinx
10
SQL Server
5
SQLite
1
StableDiffusion
1
Subversion
2
Swagger
1
Swarmpit
1
Syslog
3
Telegraf
6
Tesseract
3
TestLink
2
Tomcat
2
TortoiseGit
11
TortoiseSVN
2
Trading View
1
Traefik
3
Travis CI
1
Ubuntu
31
Visual Studio
39
Visual Studio Code
10
VSCode
8
Vue.js
8
Windows
62
Windows 10
5
Windows ADK
1
Windows API
2
Windows Embedded
4
wkhtmltopdf
2
Word
3
WPF
12
WSL
5
WSL2
5
Xamarin
1
xUnit
5
yaml
1
yolo
1
アプリケーション
1
デザインパターン
1
テスト
1
バッチファイル
2
プログラミング
4
ライセンス
1
暗号資産(仮想通貨)
1
英語
2
確定申告
1
機械学習
1
強化学習
1
雑記
1
書籍
1
数学
1
正規表現
1
動画編集
1
Blog Archive
►
2024
(18)
►
9月
(5)
►
8月
(1)
►
7月
(2)
►
6月
(1)
►
4月
(2)
►
3月
(1)
►
2月
(5)
►
1月
(1)
►
2023
(30)
►
12月
(3)
►
11月
(5)
►
10月
(2)
►
9月
(1)
►
8月
(2)
►
7月
(4)
►
6月
(2)
►
5月
(3)
►
4月
(2)
►
3月
(2)
►
2月
(3)
►
1月
(1)
►
2022
(106)
►
12月
(5)
►
11月
(1)
►
10月
(3)
►
9月
(6)
►
8月
(7)
►
7月
(6)
►
6月
(13)
►
5月
(9)
►
4月
(15)
►
3月
(11)
►
2月
(14)
►
1月
(16)
►
2021
(85)
►
12月
(11)
►
11月
(6)
►
10月
(4)
►
9月
(10)
►
8月
(8)
►
7月
(4)
►
6月
(18)
►
5月
(7)
►
4月
(8)
►
3月
(2)
►
2月
(2)
►
1月
(5)
▼
2020
(56)
►
12月
(1)
►
11月
(3)
►
10月
(3)
►
9月
(3)
►
8月
(3)
▼
7月
(7)
[C#] コンパイラが必要とするメンバー 'Microsoft.CSharp.RuntimeBind...
[ASP.NET Core] Razor 構文が有効にならない?
GCP で Docker を使う
[C#] Stream に対して ReadAllLines を行いたい
[JavaScript] Minify 時に `Implicit property name mus...
[C#] コンストラクタで base と this を両方使いたい
[C#] xUnit で MemberData を使ったテストがテストエクスプローラーで1つのテスト...
►
6月
(7)
►
5月
(2)
►
4月
(6)
►
3月
(6)
►
2月
(3)
►
1月
(12)
►
2019
(92)
►
12月
(13)
►
11月
(9)
►
10月
(3)
►
9月
(2)
►
8月
(3)
►
7月
(5)
►
6月
(11)
►
5月
(6)
►
4月
(17)
►
3月
(9)
►
2月
(6)
►
1月
(8)
►
2018
(100)
►
12月
(1)
►
11月
(11)
►
10月
(8)
►
9月
(6)
►
8月
(10)
►
7月
(10)
►
6月
(8)
►
5月
(9)
►
4月
(8)
►
3月
(14)
►
2月
(4)
►
1月
(11)
►
2017
(117)
►
12月
(14)
►
11月
(20)
►
10月
(17)
►
9月
(19)
►
8月
(10)
►
7月
(8)
►
6月
(3)
►
5月
(6)
►
4月
(5)
►
3月
(2)
►
2月
(8)
►
1月
(5)
►
2016
(91)
►
12月
(5)
►
11月
(9)
►
10月
(11)
►
9月
(9)
►
8月
(6)
►
7月
(14)
►
6月
(14)
►
5月
(11)
►
4月
(10)
►
3月
(2)
►
2015
(23)
►
12月
(4)
►
11月
(2)
►
10月
(8)
►
9月
(8)
►
7月
(1)
►
2013
(3)
►
11月
(1)
►
9月
(1)
►
7月
(1)
►
2012
(2)
►
7月
(1)
►
6月
(1)
►
2011
(1)
►
9月
(1)
►
2009
(1)
►
7月
(1)
►
2008
(2)
►
11月
(1)
►
7月
(1)
►
2007
(3)
►
10月
(3)