Dockerメモ
Suns & Moon Laboratory
イメージ、コンテナ、docker compose
イメージ 設計図
コンテナ 実際の実行環境
docker-composeした場合、ネットワークは同一のものとなる。
複数のcompooseは、別ネットワークになる
複数のコンテナ起動は、同一ネットワーク(docker0)になる
ホストとのUDP通信
Node-REDで、ホストと通信する
ホストはWindowsで、DelphiのIndyを使ってUDP通信を書いた。
docker-compose.yml
#
# docker compose up -d
#
version: '3.7'
services:
node-red:
image: nodered/node-red:latest
environment:
- TZ=Asia/Tokyo
ports:
- 1880:1880
- 3455:34555/udp
- 34556:34556/udp
volumes:
- node-red-data:/data
volumes:
node-red-data:
ホスト⇒コンテナ localhost:34556
コンテナ⇒ホスト 192.168.1.xxx:34555 ★ホストのIPアドレスにしないと通信できない
portsにudpつけないと通信できない?
デフォルトがTCPになってる
[コンテナーのネットワーク>[https://matsuand.github.io/docs.docker.jp.onthefly/config/containers/container-networking/]]
Docker-docs-ja アプリケーションのコンテナ化
アプリケーションのコンテナ化
Dockerfileを作成
# syntax=docker/dockerfile:1
FROM node:18-alpine
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
EXPOSE 3000
▼
コンテナイメージを構築
docker build -t getting-started .
▼
アプリコンテナの起動
docker run -dp 127.0.0.1:3000:3000 getting-started
イメージ
イメージ一覧
docker images
docker image ls
イメージの削除
docker rmi <the-container-id>
未使用ボリューム削除
docker volume prune -f
未使用ネットワーク削除
docker network prune -f
コンテナ
コンテナ一覧
docker ps
コンテナ停止して削除1
docker stop <the-container-id>
docker rm <the-container-id>
コンテナ停止して削除2
docker rm -f <the-container-id>
コンテナのボリューム作成
docker volume create <volume-name>
データ永続化
- 名前付きボリューム(Dockerが割り当て)
- バインドマウント(ホストPCのパスを指定して割り当て)
ボリューム一覧
docker volume ls
ボリュームの詳細
docker volume inspect <volume-name>
プロジェクト単位で停止
停止&削除
docker compose down
停止
docker compose stop
開始
docker compose start
全コンテナの停止
docker stop $(docker ps -aq)
デバッグ
ログ表示
docker logs <the-container-name>
コンテナのコンソール
docker debug <the-container-name>
end.
2025-12-06 20:23:49 32400