いちから始める 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環境に比べて速度が遅い(レイテンシー)傾向があります。
これは個人差があるので一概に言えませんが、開発できないレベルではありません。

git push git pull にブランチ指定せずに実行する
git pull や git push できなくなったとき
Docker のコンテナからホストOS に接続
Mac で ローカル IP アドレス(ipv4)のみを表示する
ホストOS から Docker の MySQLコンテナに接続
caching_sha2_password のエラー
node-config で環境設定ファイルを利用する
rootパスワードを初期化(再設定)する
Git から clone したときのエラー対処
Mac に MySQL をインストール
Mac に PostgreSQL をインストール
Laravel 環境構築 - Mac ネイティブ編
Firebase 入門 - Firebase とは
Firebase 入門 - CLI インストールとデータベースの設定
AWS 無料枠(t2.micro)で容量とメモリエラー
Cloud9 を起動する -初心者編-
gcloud で GCEインスタンスを起動してみる
AWS CLI と jq でインスタンス一覧を整形して表示
React と Laravel7 のプロジェクトを作成する
Homebrewインストール-2020年版
3直線で囲まれた範囲塗りつぶし
PuLP で線形最適化問題を解く
カスタムのペジネーションを作る
node-sass を使って sass をコンパイルする
Log ファサードでSQLログを分離して書き出す
いちから始める Docker - 複数のコンテナを使う - (2020年)
いちから始める Docker - docker-compose を使う - (2020年)
AWS ECR を使ってみる
Laravel7 でマルチ認証
Mac に AWS Client を設定する
Laravel7 リリース
v-html でHTML表示する
Laravel で Nuxt.js を使ってみる(Docker環境)
Laravel で Vue コンポーネントを使う
いちから始める Docker -コンテナをビルド- (2020年)
いちから始める Docker -起動してみる- (2020年)
Mac で MySQL(8系)
composer で vendor がインストールできない
Eloquent の日付を Carbon で扱う
webpack 4 入門(npm編)
[Mac]容量を減らす
DIコンテナはじめ
freee SDKを Laravel で使ってみる
freee API を使ってみる
Segueを利用しない画面遷移
Xcode11.3 で XVim2 を利用する
Codable で JSONを読み込み
Webpack入門(yarn編)
MacからLaradock PostgreSQLで接続エラー
Mac で Laradock の構築