Docker

スポンサーリンク
Docker

[docker] コンテナのネットワークとは?わかりやすく解説します。

概要 Dockerコンテナを他のコンテナやホストと通信させるためには、コンテナ=コンテナ、コンテナ=ホスト、のネットワークが必要である。 ネットワークには、Dockerがデフォルトで用意しているネットワークとDocker Composeなどでユーザーが作成したネットワークがある。 デフォルトのネットワーク Dockerはデフォルトで以下の3つのネットワークを作成する。 bridgeコンテナ間、コン...
Docker

DockerfileのCMDとENTRYPOINTの違いとは?使い分けを理解して効率的に活用しよう

概要 Dockerfileに記述できるCMDとENTRYPOITNTは、どちらも「コンテナ起動時に実行するコマンド」を記述するための命令である。どちらもDockerfileに1つだけ記述することができる。 CMDとENTRYPOITNTの違いは「コンテナ起動時の引数やcompose.yamlで上書きできるかどうか」である。 CMD: compose.yamlなどで上書き可能 ENTRYPOITNT...
Docker

Dockerのボリュームマウントとバインドマウントの違い

概要 dockerではコンテナを削除するとデータが消えてしまうが、データを永続化することでコンテナが削除されてもデータを残すことができる。 データの永続化にはボリュームマウントとバインドマウントがあり、データが保存される場所が異なる。公式では、データの移行やバックアップが容易なボリュームマウントが推奨されている。ただし、開発環境ではファイルの変更をリアルタイムで反映できるバインドマウントを使うのが...
Docker

docker-compose: command not foundエラーの原因と解決方法

概要 最近Docker Desktopをアップデートしたところ、docker-composeコマンドがdocker-compose: command not foundとなり実行できなくなってしまった。 原因と解決方法 docker-composeコマンドは非推奨となり、dockerコマンドに統一された。 (docker-composeはdocker composeのエイリアスとなっている) よっ...
Docker

docker composeで生成されるコンテナのデフォルト名

概要 Docker Composeでコンテナを作成すると「プロジェクト名_サービス名_1」というコンテナ名が自動的に付けられる。(サービス名=compose.yamlのservicesに書いた名前) ただし、compose.yaml内でコンテナを指定するときはサービス名を使う。 よって、compose.yaml内ではサービス名、dockerコマンドでは自動的に付けられたコンテナ名、を使ってコンテナ...
Docker

[docker] MySQLで日本語が文字化けしてしまう場合の解決法

概要 dockerのMySQLコンテナはそのまま使うと日本語が文字化けしてしまう。MySQLの設定ファイルmy.cnfで文字コードを指定することで、文字化けを解消することができる。 手順 1. my.cnfを用意し、任意のディレクトリ内に格納する ここではmysql/my.cnfとする。 character_set_server = utf8mb4 collation-server=utf8mb4...
Docker

[docker] mysqlに接続できない原因

概要 docker-compose.ymlにMYSQL_DATABASE. MYSQL_USERMYSQL_PASSWORDMYSQL_ROOT_PASSWORDなどを定義しても、反映されずにMySQLが作成されてしまうことがある。 Host '172.19.0.6' is not allowed to connect to this MySQL serverのようにHost 'xxx.xx.xx...
Docker

Docker for MacでCannot start service xxx: Mounts deniedのエラーとなる原因

概要 Docker For Macをバージョン3.0.0にアップデートしたところ、以下のようなエラーが表示されコンテナを起動することができなくなった。 ERROR: for xxxxx Cannot start service xxxxx: Mounts denied: approving /Users/xxxx/xxxx: file does not existERROR: Encountere...
スポンサーリンク