2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ローカルでビルドしたNext.jsコンテナをリモートのDockerで起動してみた

Last updated at Posted at 2025-02-19

はじめに

概要

  • ローカルでビルドしたNext.jsコンテナをリモートのDockerで起動したい。

かつ

  • リモートでコンテナをビルドしたくない。
  • ファイルの転送にクラウドを使いたくない。

という場合の手順をまとめました。

ファイルの転送にクラウドを使いたくない場合は、「Docker Hubを使わない方法」をご覧ください。

環境

ローカル

  • Windows 11
  • Docker Desktop 4.37.1
  • Next.js 15.1.5

リモート

  • Windows 11
  • Docker Desktop 4.37.1

Docker Hubを使う方法

準備

ローカル・リモートのDocker Desktopを起動する。

ローカルでの作業

1. コンテナからイメージを作成する。

docker commit (コンテナID) (新しいイメージ名):(新しいタグ名)
docker commit aaaaa test_image:latest

コンテナIDはDocker Desktopで確認できます。

2. Docker Hubでプライベートリポジトリを作成する。

3. Docker Hubにログインする。

docker login -u (Docker Hubのユーザー名)
docker login -u user

この後パスワードを聞かれます。

4. イメージにタグをつける。

docker tag (イメージ名):(タグ名) (Docker Hubのユーザー名)/(プライベートリポジトリ名):(新しいタグ名)
docker tag test_image:latest user/private-rep:latest

5. イメージをDocker Hubにプッシュする。

docker push (Docker Hubのユーザー名)/(プライベートリポジトリ名):(タグ名)
docker push user/private-rep:latest

6. Docker Hubからログアウトする。(任意)

docker logout

リモートでの作業

1. Docker Hubにログインする。

docker login -u (Docker Hubのユーザー名)

この後パスワードを聞かれます。

2. Docker Hubからイメージをプルする。

docker image pull (Docker Hubのユーザー名)/(イメージ名):(タグ名)
docker image pull user/test_image:latest

3. Docker Hubからログアウトする。(任意)

docker logout

4. イメージからコンテナを起動する。

docker run -d -p (外部のポート番号):(コンテナ内のポート番号) --name (新しいコンテナ名) (イメージ名):(タグ名)
docker run -d -p 3000:3000 --name test_container test_image:latest

確認

ローカルで
http://(リモートのIPアドレスまたはホスト名):(外部のポート番号)
にアクセスすると、アプリが表示されます。

Docker Hubを使わない方法

準備

ローカル・リモートのDocker Desktopを起動する。

ローカルでの作業

1. コンテナからイメージを作成する。

docker commit (コンテナID) (新しいイメージ名):(新しいタグ名)
docker commit aaaaa test_image:latest

コンテナIDはDocker Desktopで確認できます。

2. イメージをtarファイルとしてエクスポートする。

docker save -o (ローカルの保存先のディレクトリパス)/(新しいファイル名).tar (イメージ名):(タグ名)
docker save -o /tmp/test_image.tar test_image:latest

3. tarファイルをリモートマシンに転送する。

今回はリモートデスクトップに接続してローカルから手動でコピー&ペーストしましたが、以下のコマンドでも実行できるそうです。

scp (ローカルの保存先のディレクトリパス)/(ファイル名).tar (リモートのユーザー名)@(リモートのIPアドレスまたはホスト名):(リモートの保存先のディレクトリパス)
scp /tmp/test_image.tar user@123.456.7.890:/tmp

リモートでの作業

1. tarファイルをイメージとしてインポートする。

docker load -i (リモートの保存先のディレクトリパス)/(ファイル名).tar 
docker load -i /tmp/test_image.tar

2. イメージからコンテナを起動する。

docker run -d -p (外部のポート番号):(コンテナ内のポート番号) --name (新しいコンテナ名) (イメージ名):(タグ名)
docker run -d -p 3000:3000 --name test_container test_image:latest

確認

ローカルで
http://(リモートのIPアドレスまたはホスト名):(外部のポート番号)
にアクセスすると、アプリが表示されます。

参照

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?