更新前【docker】docker buildとupの違いを簡潔に説明する

未設定

kamiです。
TwitterYoutubeもやってます。

結論:比較表

コマンド 何をする 結果
docker build イメージを作る イメージができる(まだ動いてない)
docker-compose up コンテナを起動 サービスが実際に動く
docker-compose up --build ビルド+起動 両方やる

docker build

Dockerfileを元にイメージを作成するコマンドです。

docker build -t my-app .

オプションの意味は以下です:

部分 意味
-t my-app イメージに「my-app」という名前(タグ)をつける
. 現在のディレクトリにあるDockerfileを使う

これを実行するとイメージが作られるだけで、コンテナはまだ動いていない。

Dockerfileの例

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

スポンサードサーチ

docker-compose up

docker-compose.ymlに定義されたサービスをまとめて起動するコマンドです。

docker-compose up

既存のイメージを使ってコンテナを起動する。イメージがなければ自動でビルドされる。

docker-compose.ymlの例

version: '3.8'
services:
  app:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
    depends_on:
      - db
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: myapp

docker-compose up –build

イメージのビルドとコンテナの起動を同時にやるコマンドです。

docker-compose up --build

Dockerfileを変更したときはこれを使う。--buildをつけないと古いイメージのまま起動してしまう。

スポンサードサーチ

まとめ

普段は docker-compose up、Dockerfile変えたら docker-compose up --build って覚えておけばOK。

未設定

Posted by kami