はじめに
最近学習しているKotlinの書籍の中でDockerを使用するため、学習メモとして残しております。
Dockerに対しての知識は浅いので、認識が間違っている点があったらご指摘いただけると嬉しいです。
今回の事象
docker-compose.ymlファイルを作成したのち、下記コマンドを実行するとエラーが発生する。
MacBook-Pro docker % sudo docker-compose up -d
[+] Running 0/0
⠋ Container mysql_host Starting 0.1s
Error response from daemon: network docker_default not found
解決方法
「docker_default」と言う名前のネットワークが存在しないため発生したエラー。
そのため、下記コマンドでネットワークを作成後、再度コマンドを実行することで成功しました。
-- ネットワークの作成
MacBook-Pro docker % docker network create --driver bridge docker_default
920b19dd460fc74d656df6c42243494735c1fdff0d116232b350f1513c3de732
--
MacBook-Pro docker % sudo docker-compose up -d
[+] Running 1/1
⠿ Container mysql_host Started
補足
Docker Composeとは
構築に関わるコマンドの内容を1つのテキストファイルとしてまとめ、一気に実行したり、停止・破棄することができる。
参考として今回使用したdocker-compose.ymlファイルを記載します。
ちなみにcommandの横にある「mysqld」の「d」の記載漏れでエラーになり、なかなか気づかず奮闘したので今後気をつけよう…。
version: '3'
services:
# MySQL
db:
image: mysql:8.0.30
ports:
- "3306:3306"
container_name: mysql_host
environment:
MYSQL_ROOT_PASSWORD: mysql
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
volumes:
- ./db/data:/var/lib/mysql
- ./db/my.cnf:/etc/mysql/conf.d/my.cnf
- ./db/sql:/docker-entrypoint-init-initdb.d
さいごに
今回の場合はエラーメッセージをしっかり読めばすぐに解決したことだなと反省しました。英語が苦手で、英語で書かれたサイトは今まであまり見ていなかったけど、google翻訳が思っていたより有能で、これからは逃げずにしっかり確認してみようと思いました。
参考資料
・Kotlin サーバーサイドプログラミング実践開発