Docker for Macをインストールする
インストーラーでインストールする方法
- 環境 : macOS Catalina バージョン10.15.7
- Docker Hubを表示する
- [Get Docker]ボタンでdmgファイルをダウンロードする
Docker.dmg
をダブルクリックしてアプリケーション・フォルダに Docker アイコンをドラッグする- Launchpadに追加されたDockerを起動する
- パスワードを入力して[ヘルパーをインストールする]ボタンで進むとダイアログが開いて[start]ボタンから使い方の説明が見られる
# ターミナルでコマンドを使ってもバージョンを確認できる % docker --version Docker version 19.03.13, build 4484c46d9d
インストールできたか確認するためにhello-worldコンテナを作ってみる
- ターミナルを起動する
docker run hello-world
を実行- ローカルにはないよと表示される :
Unable to find image 'hello-world:latest' locally
- 自動でDocker Hubからイメージがpullされる :
latest: Pulling from library/hello-world
- ローカルにはないよと表示される :
# hello-worldコンテナを作る % docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 0e03bdcc26d7: Pull complete Digest: sha256:8c5aeeb6a5f3ba4883347d3747a7249f491766ca1caa47e5da5dfcf6b9b717c0 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/ # コンテナができた % docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 79377c1d5f44 hello-world "/hello" 14 minutes ago Exited (0) 14 minutes ago trusting_jang
Homebewでインストールする方法
- 環境 : macOS Monterey バージョン12.2.1
# 1. 使う前に更新しておく $ brew update Already up-to-date. # 2. 使う前に健康診断しておく $ brew doctor Your system is ready to brew. # 3. バージョンを見ておく $ brew --version Homebrew 3.3.16 Homebrew/homebrew-core (git revision 892f65b1c21; last commit 2022-02-28) Homebrew/homebrew-cask (git revision 9cc168aba7; last commit 2022-02-28) # 4. 「Casks」にあるのがDocker Desktopで、もう一つはCUIのDocker $ brew search docker ==> Formulae docker docker-ls docker-machine-parallels docker-clean docker-machine docker-slim docker-completion docker-machine-completion docker-squash docker-compose docker-machine-driver-hyperkit docker-swarm docker-compose-completion docker-machine-driver-vmware docker2aci docker-credential-helper docker-machine-driver-vultr dockerize docker-credential-helper-ecr docker-machine-driver-xhyve lazydocker docker-gen docker-machine-nfs mockery ==> Casks docker docker-toolbox homebrew/cask-versions/docker-edge # 5. インストールする $ brew install --cask docker Running `brew update --preinstall`... ==> Auto-updated Homebrew! Updated 3 taps (homebrew/core, homebrew/cask and homebrew/cask-fonts). ==> New Formulae aarch64-elf-binutils quick-lint-js ==> Updated Formulae Updated 6 formulae. ==> New Casks font-lxgw-bright font-mengshen-regular iptvnator ==> Updated Casks Updated 36 casks. ==> Downloading https://desktop.docker.com/mac/main/amd64/74594/Docker.dmg ######################################################################## 100.0% ==> Installing Cask docker ==> Moving App 'Docker.app' to '/Applications/Docker.app' ==> Linking Binary 'docker-compose.bash-completion' to '/usr/local/etc/bash_completion.d/docker-compose' ==> Linking Binary 'docker.zsh-completion' to '/usr/local/share/zsh/site-functions/_docker' ==> Linking Binary 'docker.fish-completion' to '/usr/local/share/fish/vendor_completions.d/docker.fish' ==> Linking Binary 'docker-compose.fish-completion' to '/usr/local/share/fish/vendor_completions.d/docker-compose.f' ==> Linking Binary 'docker-compose.zsh-completion' to '/usr/local/share/zsh/site-functions/_docker_compose' ==> Linking Binary 'docker.bash-completion' to '/usr/local/etc/bash_completion.d/docker' 🍺 docker was successfully installed! # 6. Docker Desktopのアプリを起動するとdockerコマンドが使える $ docker --version Docker version 20.10.12, build e91ed57
MySQLを作ってみる
- Docker Hubからイメージをpullする
docker pull {イメージ名}
- imageを確認する
- イメージをビルドして起動する
docker run -e MYSQL_ROOT_PASSWORD={rootのパスワード} -d -p 3306:3306 {イメージ名}
# イメージをpullする % docker pull mysql Using default tag: latest latest: Pulling from library/mysql bb79b6b2107f: Already exists 49e22f6fb9f7: Pull complete 842b1255668c: Pull complete 9f48d1f43000: Pull complete c693f0615bce: Pull complete 8a621b9dbed2: Pull complete 0807d32aef13: Pull complete a56aca0feb17: Pull complete de9d45fd0f07: Pull complete 1d68a49161cc: Pull complete d16d318b774e: Pull complete 49e112c55976: Pull complete Digest: sha256:8c17271df53ee3b843d6e16d46cff13f22c9c04d6982eb15a9a47bd5c9ac7e2d Status: Downloaded newer image for mysql:latest docker.io/library/mysql:latest # imageを確認する % docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql latest db2b37ec6181 6 days ago 545MB nginx latest f35646e83998 2 weeks ago 133MB hello-world latest bf756fb1ae65 10 months ago 13.3kB # ビルドして起動する % docker run -e MYSQL_ROOT_PASSWORD=root -d --name mysql80 -p 3306:3306 mysql 0e2b57b5753826e7d3921037f22665eb331f0861b489245cce27377bc666d0a1 # mysql80が作られて起動している % docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0e2b57b57538 mysql "docker-entrypoint.s…" 5 seconds ago Up 4 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql80
docker run のオプション
参考 : run — Docker-docs-ja 19.03 ドキュメント
オプション | 意味 |
---|---|
-d, --detach | コンテナをバックグラウンドで実行し、コンテナIDを表示 |
-e, --env= | 環境変数を指定 |
--name | コンテナに名前を割り当てる |
-p, --publish= | コンテナのポートをホスト側に公開-p {ホスト側ポート}:{コンテナ側ポート} |
MySQLにログインする
- ホストか作ったコンテナにログインする
- MySQLにログインする
# コンテナにログインする % docker exec -it mysql80 bash # MySQLにログインする root@0e2b57b57538:/# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.22 MySQL Community Server - GPL Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. # まだ初期DBしかない mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.01 sec) # MySQLからログアウトする mysql> quit Bye # コンテナからログアウトする root@0e2b57b57538:/# exit exit %