Dockerイメージのインポートとエクスポートの実装

Dockerイメージのインポートとエクスポートの実装

GitLabのDocker使用法

gitlab ドッカー

起動コマンド

docker run -d -p 3000:80 twang2218/gitlab-ce-zh:9.0.3

docker run -d -p 8080:80 gitlab/gitlab-ce:latest

コンテナの変更をイメージにコミットする

# コンテナに入る [root@#localhost docker]# docker run -ti ubuntu:14.04 /bin/bash
ルート@812a997f614a:/#id 
uid=0(ルート) gid=0(ルート) グループ=0(ルート)

# いくつか変更しました root@812a997f614a:/# echo update>update.txt
root@812a997f614a:/# 終了
出口

[root@#localhost docker]# docker ps -a
コンテナID イメージ コマンド 作成ステータス ポート名
812a997f614a ubuntu:14.04 "/bin/bash" 7 分前 終了 (0) 22 秒前 zealous_euler
69304dea46c7 gitlab/gitlab-ce:latest "/assets/wrapper" 約1時間前 終了 (127) 44分前 competent_minsky
67ba866e21b0 gitlab/gitlab-ce:latest "/assets/wrapper" 2 時間前 終了しました (137) 約 1 時間前 hungry_hoover
2a3d08a0a2ff twang2218/gitlab-ce-zh:9.0.3 "/assets/wrapper" 2 時間前 終了 (137) 約 1 時間前 nerve_wozniak
6db49540be99 twang2218/gitlab-ce-zh:9.0.3 "/assets/wrapper" 2 時間前 終了しました (255) 2 時間前 22/tcp、443/tcp、0.0.0.0:3000->80/tcp romantic_elion
b08a6d6ed716 gitlab/gitlab-ce:latest "/assets/wrapper" 2 時間前 終了しました (255) 2 時間前 22/tcp、443/tcp、0.0.0.0:8080->80/tcp competent_brahmagupta
33fd0b1ebd27 gitlab/gitlab-ce:latest "/assets/wrapper" 2 時間前 終了しました (127) 2 時間前 loved_brattain
6f53620a930c twang2218/gitlab-ce-zh:9.0.3 "/assets/wrapper" 3 時間前 終了 (127) 2 時間前 brave_galileo
88df78f77c4e ubuntu:14.04 "sleep 360" 4日前 終了 (137) 4日前 testcopy
81a879a36bd3 wordpress "docker-entrypoint..." 4日前 終了 (0) 4日前 wordpress
a57a3cc492b7 mysql "docker-entrypoint..." 4日前 終了 (0) 4日前 mysqlwp

# 変更したイメージを新しい [root@#localhost docker]# docker commit 812a997f614a ubuntu:update として保存します
sha256:317f102584605694da424bc96764559a1ccfda13943353f4cbdfd89c96515e6b

[root@#localhost docker]# docker イメージ
リポジトリ タグ イメージ ID 作成 サイズ
ubuntu アップデート 317f10258460 5 秒前 188 MB
twang2218/gitlab-ce-zh 9.0.3 36172b5fefab 44 時間前 1.19 GB
gitlab/gitlab-ce 最新 5eff2e44957c 2日前 1.11 GB
mysql 最新 9546ca122d3a 8日前 407 MB
wordpress 最新 4ad41adc2794 2週間前 401 MB
ubuntu 14.04 7c09e61e9035 5週間前 188 MB
daocloud.io/library/nginx 1.7.1 e3e043d3ed2f 2年前 499 MB

# 変更されたイメージと元のイメージの差異を表示します [root@#localhost docker]# docker diff 812a997f614a
C /var
C /var/キャッシュ
C /var/cache/apt
D /var/cache/apt/srcpkgcache.bin
D /var/cache/apt/pkgcache.bin
C /var/lib
C /var/lib/apt
C /var/lib/apt/リスト
/var/lib/apt/lists/lock です
/var/lib/apt/lists/partial の場合
/var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_trusty-updates_InRelease です。
/update.txt へ
C /ルート
/root/.bash_history です
[root@#localhost docker]#

画像のインポートとエクスポート

輸出入

[root@#localhost docker]# docker run -ti ubuntu:update /bin/bash
ルート@cbe3cb7799ed:/# ls
bin boot dev etc home lib lib64 media mnt opt ​​proc root run sbin srv sys tmp update.txt usr var

[root@#localhost docker]# 
[root@#localhost docker]# docker ps -a
コンテナID イメージ コマンド 作成ステータス ポート名
cbe3cb7799ed ubuntu:update "/bin/bash" 47秒前 終了 (1) 6秒前 adoring_kare
812a997f614a ubuntu:14.04 "/bin/bash" 16 分前 終了 (0) 8 分前 zealous_euler
69304dea46c7 gitlab/gitlab-ce:latest "/assets/wrapper" 2 時間前 終了 (127) 53 分前 competent_minsky
67ba866e21b0 gitlab/gitlab-ce:latest "/assets/wrapper" 2 時間前 終了しました (137) 2 時間前 hungry_hoover
2a3d08a0a2ff twang2218/gitlab-ce-zh:9.0.3 "/assets/wrapper" 2 時間前 終了 (137) 2 時間前 nerve_wozniak
6db49540be99 twang2218/gitlab-ce-zh:9.0.3 "/assets/wrapper" 2 時間前 終了しました (255) 2 時間前 22/tcp、443/tcp、0.0.0.0:3000->80/tcp romantic_elion
b08a6d6ed716 gitlab/gitlab-ce:latest "/assets/wrapper" 2 時間前 終了しました (255) 2 時間前 22/tcp、443/tcp、0.0.0.0:8080->80/tcp competent_brahmagupta
33fd0b1ebd27 gitlab/gitlab-ce:latest "/assets/wrapper" 3 時間前 終了 (127) 2 時間前 loved_brattain
6f53620a930c twang2218/gitlab-ce-zh:9.0.3 "/assets/wrapper" 3 時間前 終了 (127) 2 時間前 brave_galileo
88df78f77c4e ubuntu:14.04 "sleep 360" 4日前 終了 (137) 4日前 testcopy
81a879a36bd3 wordpress "docker-entrypoint..." 4日前 終了 (0) 4日前 wordpress
a57a3cc492b7 mysql "docker-entrypoint..." 4日前 終了 (0) 4日前 mysqlwp

# イメージをファイルにエクスポートします [root@#localhost docker]# docker export cbe3cb7799ed > update.tar


# エクスポートされたファイル [root@#localhost /] に基づいて新しい静的イメージを作成します。# docker import - update < update.tar 
sha256:fd00d520a43eb5dc6cca8717fe0ca04cfdc53b02cad2fb5b50d877b8e6d6c3bc
[root@#localhost /]# docker イメージ
リポジトリ タグ イメージ ID 作成 サイズ
最新の更新 fd00d520a43e 13 秒前 165 MB
ubuntu アップデート 317f10258460 11 分前 188 MB
twang2218/gitlab-ce-zh 9.0.3 36172b5fefab 44 時間前 1.19 GB
gitlab/gitlab-ce 最新 5eff2e44957c 2日前 1.11 GB
mysql 最新 9546ca122d3a 8日前 407 MB
wordpress 最新 4ad41adc2794 2週間前 401 MB
ubuntu 14.04 7c09e61e9035 5週間前 188 MB
daocloud.io/library/nginx 1.7.1 e3e043d3ed2f 2年前 499 MB
[ルート@#localhost /]#

保存して読み込む

(ミラーリングによるバックアップと復元の場合など)

# 更新は既存のイメージです [root@#localhost /]# docker save -o update1.tar update
[root@#localhost /]# ls
bin boot dev etc home lib lib64 media mnt opt ​​proc root run sbin srv sys tmp update1.tar update.tar usr var
[root@#localhost /]# du -sh update1.tar 
166M アップデート1.tar

# 更新イメージを削除します [root@#localhost /]# docker rmi update
タグなし: update:latest
削除済み: sha256:fd00d520a43eb5dc6cca8717fe0ca04cfdc53b02cad2fb5b50d877b8e6d6c3bc
削除済み: sha256:14cc8cd7b783152682835346e5fe90860a9feeb684866688692285319d4e97ad

[root@#localhost /]# docker イメージ
リポジトリ タグ イメージ ID 作成 サイズ
ubuntu アップデート 317f10258460 16 分前 188 MB
twang2218/gitlab-ce-zh 9.0.3 36172b5fefab 44 時間前 1.19 GB
gitlab/gitlab-ce 最新 5eff2e44957c 2日前 1.11 GB
mysql 最新 9546ca122d3a 8日前 407 MB
wordpress 最新 4ad41adc2794 2週間前 401 MB
ubuntu 14.04 7c09e61e9035 5週間前 188 MB
daocloud.io/library/nginx 1.7.1 e3e043d3ed2f 2年前 499 MB

#イメージをインポートします [root@#localhost /]# docker load < update1.tar 
14cc8cd7b783: レイヤーを読み込んでいます [============================================================>] 173.8 MB/173.8 MB
読み込まれた画像: update:latest
[root@#localhost /]# docker イメージ
リポジトリ タグ イメージ ID 作成 サイズ
最新更新 fd00d520a43e 6分前 165 MB
ubuntu アップデート 317f10258460 17 分前 188 MB
twang2218/gitlab-ce-zh 9.0.3 36172b5fefab 44 時間前 1.19 GB
gitlab/gitlab-ce 最新 5eff2e44957c 2日前 1.11 GB
mysql 最新 9546ca122d3a 8日前 407 MB
wordpress 最新 4ad41adc2794 2週間前 401 MB
ubuntu 14.04 7c09e61e9035 5週間前 188 MB
daocloud.io/library/nginx 1.7.1 e3e043d3ed2f 2年前 499 MB
[ルート@#localhost /]# 

Dockerファイル

[root@#localhost ~]# mkdir docker_file
[root@#localhost ~]# cd docker_file/

[root@#localhost docker_file]# vi Dockerfile 

[root@#localhost docker_file]# cat Dockerfile 
ubuntu:14.04から

エントリポイント ["/bin/echo"]

[root@#localhost docker_file]# docker ビルド .
ビルド コンテキストを Docker デーモンに送信しています 2.048 kB
ステップ 1/2: ubuntu:14.04 から
 ---> 7c09e61e9035
ステップ 2/2: ENTRYPOINT /bin/echo
 ---> d53f31b93355 で実行中
 ---> 26dd06d2e5a5
中間コンテナ d53f31b93355 を削除しています
26dd06d2e5a5 の構築に成功しました

#イメージを実行 [root@#localhost docker_file]# docker run 26dd06d2e5a5

#パラメータを追加 [root@#localhost docker_file]# docker run 26dd06d2e5a5 hello world
こんにちは世界
[root@#localhost docker_file]# vi Dockerfile 
[root@#localhost docker_file]# docker run 26dd06d2e5a5 hello world
こんにちは世界


#
[root@#localhost docker_file]# cat Dockerfile 
ubuntu:14.04から

#ENTRYPOINT ["/bin/echo","Hi world!"]
CMD ["/bin/echo","こんにちは!"]

[root@#localhost docker_file]# docker ビルド .
[root@#localhost docker_file]# docker run 12458a717ced
こんにちは世界!


[root@#localhost docker_file]# docker run 12458a717ced /bin/date 
2017年4月8日土曜日 12:08:14 UTC


ビルド時にタグを追加する

[root@#localhost docker_file]# docker build -t yang:01 .
ビルド コンテキストを Docker デーモンに送信しています 3.584 kB
ステップ 1/2: ubuntu:14.04 から
 ---> 7c09e61e9035
ステップ 2/2: CMD /bin/echo Hi world!
 ---> 94e510f085d7 で実行中
 ---> 6b33c8a6a32f
中間コンテナ 94e510f085d7 を削除しています
6b33c8a6a32f を正常に構築しました
[root@#localhost docker_file]# docker イメージ
リポジトリ タグ イメージ ID 作成 サイズ
ヤン 01 6b33c8a6a32f 5秒前 188 MB
最新更新 fd00d520a43e 29 分前 165 MB
ubuntu アップデート 317f10258460 41 分前 188 MB
twang2218/gitlab-ce-zh 9.0.3 36172b5fefab 44 時間前 1.19 GB
gitlab/gitlab-ce 最新 5eff2e44957c 2日前 1.11 GB
mysql 最新 9546ca122d3a 8日前 407 MB
wordpress 最新 4ad41adc2794 2週間前 401 MB
ubuntu 14.04 7c09e61e9035 5週間前 188 MB
daocloud.io/library/nginx 1.7.1 e3e043d3ed2f 2年前 499 MB
[root@#localhost docker_file]# 

例を構築する

Flaskアプリケーションをイメージにパッケージ化する

Pythonプログラムhellp.pyを書く

#!/usr/bin/env python

FlaskからFlaskをインポート
アプリ = Flask(__name__)

@app.route('/hi')
hello_world() を定義します:
  「Hello World!」を返します。

__name__ == '__main__' の場合:
  app.run(ホスト='0.0.0.0'、ポート=5000)

Dockerfileの作成

ubuntu:14.04から

apt-get updateを実行する
apt-get install -y pythonを実行します。
apt-get install -y python-pipを実行します。
apt-get clean allを実行する

pip install flaskを実行します。

hello.py を追加します /tmp/hello.py

エクスポーズ5000

コマンド ["python","/tmp/hello.py"]

これで、docker イメージのインポートとエクスポートの実装に関するこの記事は終了です。より関連性の高い docker イメージのインポートとエクスポートのコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerイメージとコンテナのインポ​​ートとエクスポート操作の実践
  • Docker イメージのインポートとエクスポートのコード例
  • Dockerイメージのインポート、エクスポート、バックアップ、移行操作
  • Docker イメージのエクスポート、インポート、コピーの例の分析
  • Dockerイメージをインポートおよびエクスポートする方法
  • Docker間でイメージをエクスポートおよびインポートする方法
  • Docker イメージのインポートとエクスポートのプロセスの概要

<<:  HTML チュートリアル: よく使われる HTML タグのコレクション (5)

>>:  MySQLにおけるトランザクション分離レベルの実装原理の詳細な説明

推薦する

MySQL での実行計画の詳細分析

序文効率的なSQL文の書き方は、Explain実行計画の分析と切り離せません。実行計画とは何か、効率...

Vue を使用してモバイル APK プロジェクトを完了することについての簡単な説明

目次基本設定エントリファイル main.jsアプリ.vue表紙ヘッダー検索バー本体当プロジェクトでは...

CSS ボックスの折りたたみに対する 5 つの解決策

まず、ボックスコラプスとは何でしょうか?親ボックスの内側にあるべき要素が外側にあります。第二に、箱は...

CentOS 7.x に ZSH ターミナルをインストールする方法

1. 基本コンポーネントをインストールするまず、 yumコマンドを実行して、コードpullために必要...

Node.jsはブレークポイント再開を実装する

目次ソリューション分析スライス履歴書のダウンロード具体的な解決プロセス論理的分析フロントエンドサーバ...

MySQLのスレッド実行の急増とクエリの遅延の問題を解決する

目次背景問題の説明原因分析CPUクエリが遅い接続数分析する拡大する総括する背景新年を迎える前は、一年...

aタグのhref属性とonclickイベントの比較

まず、href 属性と onclick イベントの実行順序について説明します。マウスが a タグをク...

MySQL 5.7.9 バージョンの sql_mode=only_full_group_by 問題を解決する

MySQL 5.7.9 バージョンの sql_mode=only_full_group_by の問題...

js での typeof の使い方を理解するための記事

目次ベース戻り値の型文字列とブール値数値とbigintシンボル未定義関数物体他のよくある質問参照エラ...

Ubuntu システムにおける Mysql ERROR 1045 (28000): ユーザー root@localhost へのアクセスが拒否される問題の解決方法

最初の方法: skip-grant-tables: 非常に便利なmysql起動パラメータ非常に便利な...

VMwareのCentosシステムでNavicatがMySQLサーバーに接続できない問題を解決します

ホスト 'xxxx' はこの MySQL サーバーに接続できませんエラー: 1130...

MySQL チュートリアル データ定義言語 DDL の例 詳細な説明

目次1. SQL言語の基本機能の紹介2. データ定義言語の目的3. データベースの作成と破棄4. デ...

VueはTodoListの例をカプセル化し、ブラウザのローカルキャッシュのアプリケーションを実装します。

この記事では主に、Vue で TodoList をカプセル化するケースと、ブラウザのローカル キャッ...

アバター変更機能を実装するJavaScript

この記事では、アバター変更機能を実装するためのJavaScriptの具体的なコードを参考までに共有し...

JS でクリップボード API を使用する方法

目次1. Document.execCommand() メソッド(1)コピー操作(2)貼り付け操作(...