質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

2回答

4356閲覧

Dockerfileでローカルのカスタムイメージtarファイルを指定しイメージを作成したい

shinjukuzame

総合スコア12

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

1クリップ

投稿2020/10/26 04:33

編集2020/10/26 04:35

docker(docker-compose)を用いた環境を構築しております。

インターネット利用にハードルがあるため、毎回DockerHubからイメージをダウンロードしたり、その後のyum等によるパッケージインストールを行うことが難しい状況です。

インターネット利用ハードルがあるためDockerHubにカスタムイメージを
配置することもできません。

docker save/load コマンドでカスタムイメージ(tarに固める)を作成することで
対応できそうだということは調べて分かりましたが、
docker-composeもしくはdockerfileでこれらを実現する方法がわからず
困っております。

ローカルのtarイメージをベースに、docker-composeもしくはdockerfileで
イメージをビルドする方法をご教示いただけますでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

https://docs.docker.jp/engine/reference/commandline/save.html?highlight=save
https://stackoverflow.com/questions/47855990/docker-compose-save-load-images-to-another-host

dockerのsaveを利用して、イメージをファイル化し、当該環境でloadすることでイメージを所望の環境に再現した後に、docker-composeをするという手順かと思われます。
ネットに接続されていない環境でのビルドではなく、すでに構築したイメージをファイルにして持っていくイメージになると思います。

投稿2020/10/26 08:13

t_obara

総合スコア5488

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shinjukuzame

2020/10/26 22:02 編集

ご回答ありがとうございます。 求めていた結論はまさにこれでした。 やはり、一度 >当該環境でloadすることでイメージを所望の環境に再現 のプロセスが必要で、一足飛びにはできないのですね。
guest

0

docker save/loadを使うということは、ビルド済のイメージを保存/読み込みするという事なので、「ビルドする方法」というのがよくわかりません。
単純にdocker run等で起動すれば良いんじゃないでしょうか。

つまりビルドの過程はインターネットに接続された環境で行い、そのイメージを利用する環境では「ビルド」という工程を行わないで良い状態にすれば良いかと思います。

仮にその利用環境で「ビルド」をしようと思っても、パッケージのインストール等はできないわけですよね?

投稿2020/10/26 05:14

gentaro

総合スコア8947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shinjukuzame

2020/10/26 05:26

言葉足らずでした。 また、ビルドという言葉の意味を正しく理解していなかったようです。 当方がやりたいことは、 1)DockerHubからXXという公式イメージを得る 2)上記1)に yumやpipで必要パッケージをインストールする 3)上記2)に加え、各環境個別の設定ファイルをADDする というものです。 1)2)は共通的オペレーションであるので、別の環境で環境構築しtarで固めておき、 3)以降の環境構築に備えUSB-HDD等でデータ受け渡しする、といったことが できないかと考えました。 イメージとしては、 3)の段階で、 Dockerfile内に FROM "2)で作成したtarファイル" ADD "各環境個別の設定ファイル" ”その配置先” のような感じです。 いろいろと説明不足、すいませんでした
gentaro

2020/10/26 05:30

実行時にdocker runの-v オプションとかで必要なファイルをマウントすれば良いだけじゃないですか?
shinjukuzame

2020/10/26 06:08

>docker runの-v オプションとかで必要なファイルをマウント 上記、「ADD "各環境個別の設定ファイル" ”その配置先”」のことを指していますか? もしそうであれば、このポイントでは困っておりません。 共通オペレーションである1)2)を別環境で実施し、ファイル化することで インターネット接続環境がない状況でも3)以降の環境構築を進める方法はないか? という質問とご理解ください。(また言葉が足りておらず、すいません
gentaro

2020/10/26 06:19

??? > 共通オペレーションである1)2)を別環境で実施し、ファイル化することで ここまではまぁわかる >インターネット接続環境がない状況でも3)以降の環境構築を進める方法はないか? コンテナの実行時ではなく、ビルドプロセス中にそのファイルを参照したいということですか? それなら質問文にその具体例を書いてもらった方が回答を得られやすいと思いますが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問