Docker 31

7.コンテナで実行した Spring Boot が MySQL に接続できない理由

https://tokyoant.tistory.com/34※コンテナで実行したSpringBootがMySQLに接続できない✅ コンテナで実行した Spring Boot が MySQL に接続できない理由各コンテナは独自のネットワーク網と IP アドレスを保持している。ホストコンピュータ側から見れば localhost はホストコンピュータ自身を指すが、Spring Boot コンテナ側から見れば localhost は Spring Boot コンテナ自身を指す。 しかし、Spring Boot のコードを作成した際、DB 情報を以下のように入力していた。Spring Boot が実行される環境であるコンテナ側から見れば、localhost:3306 というアドレスは Spring Boot コンテナ内部の 3306 番ポートへの接続を試みることになる。当然ながら、Spring..

6.Spring Boot と MySQL コンテナを同時起動

✅ Spring Boot と MySQL コンテナを同時に起動する1. Spring Boot プロジェクトの設定start.spring.iohttps://start.spring.io/Java 17 バージョンを選択する。Dependencies は以下を選択する。:Spring Boot DevToolsSpring WebSpring Data JPAMySQL Driver2. 簡単なコードの作成AppController@RestControllerpublic class AppController { @GetMapping("/") public String home() { return "Hello, World!"; }}3. application.yml に DB 接続情報を記述application.ymlspring: dataso..

5.MySQLをDocker Composeで実行

✅ Docker CLI でコンテナを実行する場合$ docker run -e MYSQL_ROOT_PASSWORD=pwd1234 -p 3306:3306 -v /Users/suhwan/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql✅ Docker Compose で MySQL を実行する1. Compose ファイルの作成compose.ymlservices: my-db: container_name: mysql image: mysql environment: # CLI の -e MYSQL_ROOT_PASSWORD=pwd1234 に相当 MYSQL_ROOT_PASSWORD: pwd1234 volumes: # CLI の -v ..

4.Spring BootをDocker Composeで実行

1. プロジェクトの設定start.spring.io https://start.spring.io/2. 簡単なコードの作成AppController@RestControllerpublic class AppController { @GetMapping("/") public String home() { return "Hello, World!"; }}3. Dockerfile の作成プロジェクトのルートディレクトリに Dockerfile を作成します。DockerfileFROM openjdk:17-jdk# ビルドされた JAR ファイルを app.jar という名前でコピーCOPY build/libs/*SNAPSHOT.jar /app.jar# コンテナ起動時に JAR ファイルを実行ENTRYPOINT ["java", "-jar",..

3.Docker Compose CLI

💡 docker-compose(ハイフンあり)で始まるコマンドは、すでにアップデートが終了している Docker Compose v1 のコマンドです。可能な限り使用を控え、v2 から導入された docker compose(スペースあり)で始まるコマンドを使用しましょう。 以下のコマンドは、compose.yml が存在するディレクトリで実行する必要があります。✅ Compose ファイルの作成compose.ymlservices: webserver: container_name: webserver image: nginx ports: - "80:80"✅ Compose ファイルで定義したコンテナの起動$ docker compose up # フォアグラウンドで実行$ docker compose up -d # バックグラウ..

2.Docker Compose でNginx のインストールと起動

✅ Docker CLI でコンテナを起動する場合$ docker run --name webserver -d -p 80:80 nginx✅ Docker Compose でコンテナを起動する場合1. compose.yml ファイルの作成compose.ymlservices: my-web-server: container_name: webserver image: nginx ports: - "80:80"services: my-web-server : Docker Compose では、個々のコンテナをサービス(service)と呼びます。このオプションはサービスに名前を付ける機能です。container_name: webserver : コンテナを起動する際に設定するエイリアス(別名)です。CLI における --name web..

1.Docker Compose とは?

✅ Docker Compose とは?複数の Docker コンテナを一つのサービスとして定義・構成し、まとめて管理できるようにサポートしてくれるツールです。✅ Docker Compose を使用する理由1. 複数のコンテナ管理が容易になる複数のコンテナで構成される複雑なアプリケーションを、一括で管理できるようになります。複数のコンテナを一つの共通環境で実行・管理する際に非常に役立ちます。2. 複雑な実行コマンドを簡素化できるMySQL イメージをコンテナとして実行する際、以下のような長いコマンドを実行しました。$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v /Users/suhwan/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d..

EXPOSE

✅ 意味EXPOSE は、コンテナ内部でどのポートを使用してプログラムが実行されているかを「文書化」する役割のみを果たします。docker run 時の -p 8080:8080 のようなポートフォワーディング(ポート開放)の役割は一切行いません。簡単に言えば、EXPOSE 命令は記述してもしなくても、コンテナの実際の動作には直接的な影響を与えません。あくまで、このイメージを使用するユーザーに対して「このポートを使っています」と知らせるためのガイドラインとなります。✅ 使い方Dockerfile# 文法EXPOSE [ポート番号]# 例EXPOSE 3000

Docker/Dockerfile 2026.03.15

WORKDIR

✅ 意味WORKDIR で作業ディレクトリを切り替えると、それ以降に記述されるすべての RUN, CMD, ENTRYPOINT, COPY, ADD 命令は、そのディレクトリを基準に実行されます。作業ディレクトリをあえて指定する理由は、コンテナ内部のフォルダを整理して管理するためです。コンテナもミニコンピュータと同じであるため、Dockerfile を通じて生成されるファイルを特定のフォルダにまとめておいた方が、後々の管理が容易になります。もし WORKDIR を使用しない場合、新しく作成したファイルがコンテナ内部の既存ファイルと混ざってしまいます。✅ 使い方Dockerfile# 文法WORKDIR [作業ディレクトリとして使用する絶対パス]# 例WORKDIR /usr/src/app🎯 例題1. app.txt, src (フォルダ), config.json ファイルを作成..

Docker/Dockerfile 2026.03.15

RUN

✅ 意味RUN は、Docker イメージを生成(ビルド)する過程でコマンドを実行したい場合に使用します。✅ 使い方Dockerfile# 文法RUN [実行コマンド]# 例RUN npm install✅ RUN vs ENTRYPOINTRUN コマンドと ENTRYPOINT コマンドは、どちらもコマンドを実行するため混同しやすいですが、その用途は明確に異なります。RUN:イメージ生成過程(ビルド時)で必要なコマンドを実行するときに使用します。ENTRYPOINT:生成されたイメージを基にコンテナを生成(起動)した直後にコマンドを実行するときに使用します。🎯 例題「ミニコンピュータ(コンテナ)の環境が Ubuntu で構成され、かつ Git がインストールされていてほしい」と仮定します。この環境を構築するために、Dockerfile を活用して Ubuntu と Git がイン..

Docker/Dockerfile 2026.03.15

日本語