いちから始める Docker -起動してみる- (2020年)

2020/03/11

Docker もう一度を最初から学ぶ為に、シリーズで書いていきます。

今回は、

  • Docker for Mac インストール&起動
  • docker コマンドを確認

Docker For Mac をインストール

Mac で Docker を始めるには「Docker For Mac」を利用するのがお手軽です。

公式のページの Docker For Mac から dmgファイル(※2020-03-02時点:version 2.2.2.0)をダウンロードします。

Docker for Mac

Docker for Mac のメニュー

Docker for Mac の基本設定

Docker の自動起動

Start Docker when you log in

自動アップデート

Automatically check for updates

CPU・メモリ設定

個人差がありますが、デフォルトで使用してみて足りないようなら変更してみると良いでしょう。

ホストOS側のマウント

「File Sharing」で、Dockerコンテナ側がマウントするディレクトリを設定できます。
差し当たり、デフォルトのままで良いと思います。

ネットワーク

Dockerコンテナが利用する、IPアドレスの範囲をしていします。
自分でカスタマイズしても構いませんが、差し当たりデフォルトにしておきます。

docker コマンドを使ってみる

Docker for Mac がインストールできたら、Mac のターミナルで docker コマンドを実行してみます。

Docker バージョン確認


$ docker --version
Docker version 19.03.5, build 633a0ea

Docker Getting Started コンテナ起動

今度はあらかじめ作成されている Dockerコンテナを起動してみます。

docker/getting-started というコンテナが Docker Hub に用意されているので、これを起動してみます。


$ docker run -dp 80:80 docker/getting-started

色々とオプションが入ってますが、わかりやすく書くと以下の通りとなります。


$ docker run オプション コンテナ名

run:コンテナを起動

今回の場合、docker/getting-started​ がコンテナイメージとなります。

-d:バックグラウンド起動

通常はこのバックグラウンドで起動します。

-p:ポート番号マッピング

ホスト側のポート番号と、コンテナ側のポート番号をマッピングします。


ホストポート番号:コンテナポート番号

コンテナ起動のオプションは、


$ docker run --help

で調べることができます。

起動中のコンテナ確認

コンテナを起動したら、コンテナの起動状況(プロセス)を確認します。


$ docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                NAMES
4abe131793c6        docker/getting-started   "nginx -g 'daemon of…"   31 minutes ago      Up 31 minutes       0.0.0.0:80->80/tcp   unruffled_roentgen

上記は、コンテナIDが「4abe131793c6」、コンテナイメージが「docker/getting-started」で起動しています。

Docker Getting Started をブラウザで確認

Mac側のポート80 と Docker側のポート80 がマッピングされているため、

http://localhost/

にアクセスすると、Webサーバを介してチュートリアルが表示されます。

Docker Getting StartedイメージのWebサーバは「nginx」が起動しているようです。

Docker Getting Started コンテナを停止

コンテナを停止します。


$ docker stop 4abe131793c6

引数は docker ps で記載されたコンテナIDを指定して


$ docker stop コンテナID

Docker For Mac は遅い?

Docker を利用する場合、Mac(ホスト) と Dockerコンテナ 間でディスク共有します。
ディスクマウントの仕様上、Docker For Mac は他のDocker環境に比べて速度が遅い(レイテンシー)傾向があります。
これは個人差があるので一概に言えませんが、開発できないレベルではありません。

カスタムのペジネーションを作る
2020/03/30
node-sass を使って sass をコンパイルする
2020/03/30
Log ファサードでSQLログを分離して書き出す
2020/03/29
いちから始める Docker - 複数のコンテナを使う - (2020年)
2020/03/28
いちから始める Docker - docker-compose を使う - (2020年)
2020/03/28
AWS ECR を使ってみる
2020/03/26
Laravel7 でマルチ認証
2020/03/24
Mac に AWS Client を設定する
2020/03/22
Laravel 7 リリース
2020/03/19
v-html でHTML表示する
2020/03/17
Laravel で Vue コンポーネントを使う
2020/03/15
Laravel で Nuxt.js を使ってみる(Docker環境)
2020/03/15
いちから始める Docker -コンテナをビルド- (2020年)
2020/03/12
いちから始める Docker -起動してみる- (2020年)
2020/03/11
Mac で MySQL(8系)
2020/03/03
composer で vendor がインストールできない
2020/03/02
Eloquent の日付を Carbon で扱う
2020/03/01
webpack 4 入門(npm編)
2020/02/27
[Mac]容量を減らす
2020/02/14
DIコンテナはじめ
2020/02/08
freee SDKを Laravel で使ってみる
2020/02/06
freee API を使ってみる
2020/02/06
Segueを利用しない画面遷移
2020/02/01
Xcode11.3 で XVim2 を利用する
2020/01/31
Codable で JSONを読み込み
2020/01/30
Webpack入門(yarn編)
2020/01/24
MacからLaradock PostgreSQLで接続エラー
2020/01/21
Dockerで不要なコンテナ・イメージを削除
2020/01/18
Mac で Laradock の構築
2020/01/18
yarn インストール&プロジェクト作成
2020/01/12
Laravel 6.x 構築(Homestead編)
2020/01/12
Composer インストール
2020/01/12
nvm インストール
2020/01/12
npm install が Mac でエラー
2020/01/05
HTMLタグでカーソルが同時処理(ミラーリング)されてしまう
2020/01/04
DI(依存性注入)
2019/12/30
[Ubuntu]Let's Encryptで無料の証明書を利用する
2019/12/22
[Apache]Apache2.4のアクセス制限が変更
2019/12/22
[Ubuntu]rootのログインとsudo権限追加
2019/12/22
タミヤ マイコンロボット工作セットをMacに接続してみた
2019/12/21
pgAdimn4 でブラウザで開けなくなる
2019/09/28
Java8 を HomebrewとjEnvで構築
2019/09/28
Android Studio環境構築 2019
2019/09/24
ロケールの再構築
2019/08/27
vagrant グループに Apacheを追加
2019/08/27
Linux2 Apache2 + PHP7.3 + PostgreSQL10
2019/08/25
Anadondaの削除
2019/08/25
[Mac]初期設定メモ(CentOS)
2019/08/21
[Mac]PostgreSQL起動
2019/08/20
[Debian]Node.js安定板インストール
2019/08/09