Docker コンテナ ソース コードのデプロイ httpd ストレージ ボリュームを使用して Web サイトをデプロイする (推奨)

Docker コンテナ ソース コードのデプロイ httpd ストレージ ボリュームを使用して Web サイトをデプロイする (推奨)

Dockerコンテナのソースコードを使用してhttpdをデプロイし、ストレージボリュームを使用してWebサイトをデプロイする

httpdイメージを作成する

// httpd コンテナを作成 [root@localhost ~]# docker run -tid --name httpd centos
2d693e16f4f3734b127cbae90d189c1b4e78619a54ceec912a82d96cf4f1c345
[root@localhost ~]# docker ps
コンテナID イメージ コマンド 作成ステータス ポート名
2d693e16f4f3 centos "/bin/bash" 5秒前 4秒前 httpd

// このコンテナに接続します [root@localhost ~]# docker exec -it 2d693e16f4f3 /bin/bash
[ルート@2d693e16f4f3 /]# 

// ソースパッケージをコンテナに入れる [root@localhost ~]# docker cp /usr/src/apr-1.7.0.tar.gz 2d693e16f4f3:/usr/src/
[root@localhost ~]# docker cp /usr/src/apr-util-1.6.1.tar.gz 2d693e16f4f3:/usr/src/
[root@localhost ~]# docker cp /usr/src/httpd-2.4.49.tar.gz 2d693e16f4f3:/usr/src/
[root@2d693e16f4f3 /]# ls /usr/src/
apr-1.7.0.tar.gz デバッグカーネル
apr-util-1.6.1.tar.gz httpd-2.4.49.tar.gz

// ソースコードからhttpdをインストールする
[root@2d693e16f4f3 /]# useradd -r -M -s /sbin/nologin apache
[root@2d693e16f4f3 /]# id apache
uid=998(apache) gid=996(apache) グループ=996(apache)
[root@2d693e16f4f3 /]# yum グループ マーク インストール '開発ツール' -y
[root@2d693e16f4f3 /]# yum -y インストール openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make
[root@2d693e16f4f3 /]# cd /usr/src/
[root@2d693e16f4f3 src]# tar xf apr-1.7.0.tar.gz -C /usr/local/
[root@2d693e16f4f3 src]# tar xf apr-util-1.6.1.tar.gz -C /usr/local/
[root@2d693e16f4f3 src]# tar xf httpd-2.4.49.tar.gz -C /usr/local/
[root@2d693e16f4f3 src]# cd /usr/local/apr-1.7.0/
[root@2d693e16f4f3 apr-1.7.0]# vi 設定
cfgfile="${ofile}T"
    トラップ "$RM \"$cfgfile\"; 終了 1" 1 2 15
    # $RM "$cfgfile" //この行をコメント化するか削除します [root@2d693e16f4f3 apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@2d693e16f4f3 apr-1.7.0]# 作成 && インストール
[root@2d693e16f4f3 ローカル]# cd apr-util-1.6.1/
[root@2d693e16f4f3 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
[root@2d693e16f4f3 apr-util-1.6.1]# 作成 && インストール
[root@2d693e16f4f3 apr-util-1.6.1]# cd ../httpd-2.4.49/ 
[root@2d693e16f4f3 httpd-2.4.49]# ./configure --prefix=/usr/local/apache \
> --enable-so \
> --enable-ssl \
> --enable-cgi \
> --enable-rewrite \
> --with-zlib \
> --with-pcre \
> --with-apr=/usr/local/apr \
> --with-apr-util=/usr/local/apr-util/ \
> --enable-modules=ほとんど\
> --enable-mpms-shared=すべて \
> --with-mpm=プリフォーク
[root@2d693e16f4f3 httpd-2.4.49]# 作成 && インストール
[root@2d693e16f4f3 local]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
[root@2d693e16f4f3 ローカル]# ソース /etc/profile.d/httpd.sh
[root@2d693e16f4f3 ローカル]# ln -s /usr/local/apache/include /usr/include/apache
[root@2d693e16f4f3 ローカル]# apachectl 開始
[root@2d693e16f4f3 ローカル]# ss -anlt
状態 受信Q 送信Q ローカルアドレス:ポート ピアアドレス:ポート プロセス                                                      
聞く 0 128 0.0.0.0:80 0.0.0.0:*    
[root@2d693e16f4f3 ローカル]# cd /
[ルート@2d693e16f4f3 /]# 
[ルート@2d693e16f4f3 /]# 
[root@2d693e16f4f3 /]# vi スタート.sh
#!/bin/sh
/usr/local/apache/bin/apachectl を起動します
バイナリ
[root@2d693e16f4f3 /]# chmod +x start.sh


//イメージをビルド [root@localhost ~]# docker commit -p -c 'CMD ["/bin/bash","start.sh"]' 2d693e16f4f3 syblyw0806/httpd:v0.1
sha256:16913ce01fdceee9a389906cf385893120734b1a088b894cc5dce1a9ead252fd
[root@localhost ~]# docker イメージ
リポジトリ タグ イメージ ID 作成 サイズ
syblyw0806/httpd v0.1 16913ce01fdc 6秒前 713MB
busybox 最新 d23834f29b38 6日前 1.24MB
centos 最新 5d0da3dc9764 2か月前 231MB

nfsを展開する

新しい仮想マシンを起動する必要があります

[root@localhost ~]# yum -y nfs-utilsをインストールします
[root@localhost ~]# systemctl nfs-server.service を再起動します
[root@localhost ~]# mkdir /nfs
[root@localhost ~]# chmod 777 /nfs/
[root@localhost ~]# vim /etc/exports
/nfs 192.168.200.136(rw)
[root@localhost ~]# systemctl nfs-serverを再起動します

docker サービスを使用して仮想マシンに nfs をインストールする

[root@localhost ~]# yum -y nfs-utilsをインストールします
[root@localhost ~]# showmount -e 192.168.200.137
192.168.200.137 のエクスポート リスト:
/nfs 192.168.200.136

マウント

[root@localhost ~]# マウント -t nfs 192.168.200.137:/nfs /var/www/html/
[root@localhost ~]# df -h
ファイルシステムサイズ 使用済み 使用可能使用率 マウント先
devtmpfs 883M 0 883M 0% /dev
tmpfs 901M 0 901M 0% /dev/shm
tmpfs 901M 8.9M 892M 1% /実行
tmpfs 901M 0 901M 0% /sys/fs/cgroup
/dev/mapper/rhel-root 47G 23G 25G 48% /
/dev/nvme0n1p1 1014M 179M 836M 18% /ブート
tmpfs 181M 0 181M 0% /run/user/0
オーバーレイ 47G 23G 25G 48% /var/lib/docker/overlay2/0a219b8bbb04290f6b1cc1ae29f5eb1a9bc713ff12c86c86c7e13d5c7ca63a0e/マージ済み
192.168.200.137:/nfs 47G 2.2G 45G 5% /var/www/html

コンテナを作成してマップする

[root@localhost ~]# docker run -itd --name httpd1 -p 80:80 -v /var/www/html/:/usr/local/apache/htdocs 16913ce01fdc
42e38f1db61e49fafa0682125d0425e3d41c4f2db0f48e1973dee1905a90daf3
[root@localhost ~]# docker ps
コンテナID イメージ コマンド 作成ステータス ポート名
42e38f1db61e 16913ce01fdc "/bin/bash start.sh" 10 秒前 9 秒前に起動 0.0.0.0:80->80/tcp、:::80->80/tcp httpd1

展開したいウェブサイトのコードをアップロードします

[root@localhost ~]# cd /var/www/html/
[root@localhost html]# ls
game.html 画像 index.html js スタイル

この時点で、新しく開いた仮想マシンのNFSを確認します

[root@localhost ~]# ls /nfs/
game.html 画像 index.html js スタイル

アクセステスト


これで、docker コンテナ ソース コードに httpd をデプロイし、ストレージ ボリュームを使用して Web サイトをデプロイする方法についての説明は終わりです。docker コンテナに httpd をデプロイする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • DockerコンテナにRedisをデプロイする手順の紹介
  • Spring Boot プロジェクトで Docker イメージを生成し、コンテナのデプロイを完了する方法
  • Docker Compose マルチコンテナデプロイメントの実装

<<:  ウェブページで CSS スタイルを適用するさまざまな形式の概要

>>:  HTML の順序付きリスト、順序なしリスト、定義リストに関する簡単な説明

推薦する

Ubuntu 18.04 システムでの Redis および phpredis 拡張機能のインストールと設定の詳細な説明

この記事では、Ubuntu 18.04 に Redis と phpredis 拡張機能をインストール...

Dockerはjenkins+mavenコード構築および展開プラットフォームを構築します

目次Docker の基本概念Docker インストール プロセス (Centos6.9)カーネルのア...

GIFアニメーション効果を模倣した自動ビデオ再生を実現するWeChatアプレットの例

需要背景:ミニプログラムページに GIF ダイナミック画像を挿入しますが、GIF 画像は通常サイズが...

Docker コンテナのデプロイの試み - マルチコンテナ通信 (node+mongoDB+nginx)

その理由はモッカー プラットフォームを導入したかったので、友人の勧めで既成のプロジェクト api-m...

HTML 左、中央、右の適応レイアウト (calc css 式を使用)

最新の HTML 標準には、レイアウトを計算するために使用できる calc CSS 式があります。し...

XHTML の IE 条件付きコメント

<br />条件付きコメントはIEシリーズ製品上でXHTMLコード処理を分離して行うこと...

Linux Cron によるパラメータ付き PHP コードのスケジュール実行

1. 引き続き PHP スクリプトを使用して実行します。コマンドラインに入力: php /home/...

HTML の値属性と名前属性の機能と使用法の紹介

1. ボタンで使用される値は、「OK」、「削除」など、ボタンに表示されるテキストを指します。 2. ...

携帯電話番号の真ん中の4桁を隠すMySQL SQL文の方法

最初のクエリ テーブル構造 (sys_users): sys_users から * を選択します。最...

JavaScript でオブジェクトをエレガントに扱う 6 つの方法

目次序文1. オブジェクト.freeze() 2. オブジェクト.seal() 3. オブジェクト....

HTML チュートリアル: 順序なしリスト

<br />原文: http://andymao.com/andy/post/102.h...

HTML インライン要素と HTML ブロックレベル要素の概要と違い

ブロックレベル要素の機能: • 常に新しい行から始まり、それ自体で 1 行を占め、後続の要素も新しい...

MySQL が自動的に再起動する問題の解決方法

序文最近、テスト環境で MySQL データベースが自動的に再起動し続ける問題が発生しました。原因は、...

CentOS サーバーのセキュリティ構成戦略

最近、ブルートフォース攻撃によるサーバのクラッキングが頻発しています。侵入行為を大まかに分析し、よく...

MySQLオンラインデータベースのデータをクリーンアップする方法

目次01 シナリオ分析02 操作方法03 結果分析01 シナリオ分析今日の午後、開発仲間がオンライン...