この記事では、Docker で新しいイメージを手動で構築する方法を紹介し、皆さんと共有します。詳細は次のとおりです。 既存のローカルイメージを表示します。 [root@docker ~]# docker イメージ リポジトリ タグ イメージ ID 作成 サイズ nginx 最新 c59f17fe53b0 4日前 108MB ubuntu 最新 747cb2d60bbe 3 週間前 122MB centos 最新 196e0ce0c9fb 6 週間前 197MB ベースイメージcentosを使用して、それに基づいて手動でWebサービスを構築します。ここではnginxを使用します。 コンテナを起動して入ります: [root@docker ~]# docker run -it --name=web centos /bin/bash [ルート@bab3b6991467 /]# 次に、コンテナに nginx サービスをインストールします。 [root@bab3b6991467 /]# cd /usr/local/src/ [root@bab3b6991467 src]# yum install wget vim ここではコンパイルを使用して nginx をインストールするため、nginx ソース パッケージをダウンロードしてコンパイル環境をインストールします。 [root@bab3b6991467 src]# wget http://nginx.org/download/nginx-1.12.2.tar.gz コンパイル環境: [root@bab3b6991467 src]# yum install gcc gcc-c++ glibc make autoconf openssl openssl-devel nginx のいくつかの依存パッケージをインストールします。 [root@bab3b6991467 src]# yum install libxslt-devel -y gd gd-devel GeoIP GeoIP-devel pcre pcre-devel 次にインストールを実行します。 [root@bab3b6991467 src]# ll 合計960 -rw-r--r--。1 ルート ルート 981687 10月17日 13:20 nginx-1.12.2.tar.gz [root@bab3b6991467 src]# tar xf nginx-1.12.2.tar.gz [root@bab3b6991467 src]# cd nginx-1.12.2 [root@bab3b6991467 nginx-1.12.2]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-file-aio --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module 必要なユーザーを作成します。 ユーザー追加 -M -s /sbin/nologin nginx コンパイルを続行します: 作成 && インストール chown -R nginx:nginx /usr/local/nginx/ ここで、nginx コマンドのパラメータを導入する必要があります。 [root@bab3b6991467 ~]# /usr/local/nginx/sbin/nginx -h -g ディレクティブ: 設定ファイルからグローバルディレクティブを設定する -g: nginx設定ファイルの指示を設定します コンテナを終了してホストマシンに戻ります [root@bab3b6991467 ~]# 終了 出口 この時点でのコンテナのステータスを確認します。 [root@docker ~]# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 bab3b6991467 centos "/bin/bash" 37 分前 終了 (0) 21 秒前 web docker diff を使用して、コンテナにどのような変更が加えられたかを確認します。出力が多すぎるため、ここには表示されません。 docker commit を使用して、Web コンテナーにレイヤーを新しいイメージに追加します。 [root@docker ~]# docker commit --help 使用方法: docker commit [オプション] コンテナ [リポジトリ[:タグ]] コンテナの変更から新しいイメージを作成する -m, --message 文字列 コミットメッセージ -a, --author 文字列 著者 (例: "John Hannibal Smith <[email protected]>") コミットを開始します: [root@docker ~]# docker commit -m "centos で nginx をコンパイル" web wadeson/centos_nginx:v1 sha256:210a202d37b8d2c31155c29adf0c7c0b49cfab7ff38234109919de7f4e76d1de ローカルイメージを表示: [root@docker ~]# docker イメージ リポジトリ タグ イメージ ID 作成 サイズ wadeson/centos_nginx v1 210a202d37b8 33秒前 464MB nginx 最新 c59f17fe53b0 4日前 108MB ubuntu 最新 747cb2d60bbe 3 週間前 122MB centos 最新 196e0ce0c9fb 6 週間前 197MB docker によってコミットされた新しいイメージを確認できます。次に、このイメージからコンテナを起動して、nginx サービスを提供します。 [root@docker ~]# docker run -d -p80:80 wadeson/centos_nginx:v1 /usr/local/nginx/sbin/nginx -g "daemon off;" c12669357e2b09a05a396ac480a04dd1956303b784f894b615d4edb889a737ab 次にコンテナを確認します。 [root@docker ~]# docker ps -l コンテナID イメージ コマンド 作成ステータス ポート名 c12669357e2b wadeson/centos_nginx:v1 "/usr/local/nginx/..." 41 秒前 40 秒前に起動 0.0.0.0:80->80/tcp thirsty_murdock nginx サービスが開始されていることがわかるので、アクセスします。 手動ビルド全体が成功しました 上記のコマンドについての説明は次のとおりです。 docker run -d -p80:80 wadeson/centos_nginx:v1 /usr/local/nginx/sbin/nginx -g "デーモンをオフにします。" 後で実行されるコマンドはすべてコンテナを対象としています。環境変数が設定されていないため、フルパスが使用されます。nginx -g パラメータは、外部から nginx 構成ファイルに指示を追加できることを意味します。デーモンオフは、nginx サービスがバックエンドではなくフォアグラウンドで実行されることを意味します (コンテナ内のサービスはフォアグラウンドで実行する必要があります) コンテナの実行中のプロセスを表示するには、docker top を使用します。 [root@docker ~]# docker top c12669357e2b UID PID PPID C STIME TTY 時間 コマンド root 35468 35451 0 02:55 ? 00:00:00 nginx: マスター プロセス /usr/local/nginx/sbin/nginx -g デーモン オフ; 1000 35489 35468 0 02:55 ? 00:00:00 nginx: ワーカープロセス docker exec を使用してコンテナに入ります。 [root@docker ~]# docker exec -it c12669357e2b /bin/bash [root@c12669357e2b /]# ps -ef UID PID PPID C STIME TTY 時間 コマンド root 1 0 0 06:55 ? 00:00:00 nginx: マスター プロセス /usr/local/nginx/sbin/nginx -g デーモン オフ; nginx 5 1 0 06:55 ? 00:00:00 nginx: ワーカープロセス ルート 6 0 1 07:01 pts/0 00:00:00 /bin/bash ルート 20 6 0 07:01 pts/0 00:00:00 ps -ef ctrl+p+q を使用すると、コンテナはすぐに終了するのではなく、バックグラウンドに配置されます。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL で乱数を生成し、文字列を連結する方法の例
この記事では、MySQL無料インストール版(zip)のインストールと設定のチュートリアルを参考までに...
目次概要問題の説明循環リンクリスト順序付き配列数学的再帰要約する概要ジョセフ・リング問題は、ジョセフ...
序文MySQL に関する私の理解に基づくと、パフォーマンスの最適化作業やマスター スレーブ レプリケ...
時は経つのが早く、わずか 6 日後には 2013 年が歴史になります。今年は、いわゆるトレンドが多す...
序文良い習慣はすべて宝物です。この記事は、SQL の後悔の治療法、SQL パフォーマンスの最適化、S...
1: syslog.conf の概要異なるタイプの Unix の場合、標準の UnixLog システ...
この記事では、MySQL 8.0.11 MSIバージョンのインストールと設定のチュートリアルを参考ま...
[LeetCode] 177. 最も高い給与従業員テーブルからn番目に高い給与を取得する SQL ...
ネットで変更方法をいろいろ調べたのですが、うまくいきませんでした。後で大物から見て削除しました。フォ...
目次1. 元のドライバーをアンインストールする2. 新しいグラフィックカードドライバーをダウンロード...
目次1. 概要1. スカイウォーキング入門2. スカイウォーキング建築3. スカイウォーキングはどの...
以下の情報はインターネットから収集したものです1. アンカーは、Web ページ作成におけるハイパーリ...
サイト全体で https アクセスを有効にしてから、共有コードが利用できなくなり、有効になっていた小...
図書館運営クエリ1.SHOW DATABASE; ----すべてのデータベースを照会する2. SHO...
シェルスクリプトを使用したMySQLデータベースの自動バックアップデータベースを頻繁にバックアップす...