{"id":283,"date":"2026-07-06T19:05:23","date_gmt":"2026-07-06T11:05:23","guid":{"rendered":"https:\/\/www.book2020.top\/?p=283"},"modified":"2026-07-25T12:23:41","modified_gmt":"2026-07-25T04:23:41","slug":"docker%e5%ae%89%e8%a3%85alpine%e5%ae%b9%e5%99%a8%e5%b9%b6%e9%83%a8%e7%bd%b2lnmp%e7%8e%af%e5%a2%83","status":"publish","type":"post","link":"https:\/\/www.book2020.top\/?p=283","title":{"rendered":"Docker\u5b89\u88c5alpine\u5bb9\u5668\u5e76\u90e8\u7f72LNMP\u73af\u5883"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u5bbf\u4e3b\u673a<a href=\"https:\/\/www.book2020.top\/?p=152\">Red Hat\u7cfb<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u66f4\u65b0\u7cfb\u7edf\u5e76\u5b89\u88c5\u81ea\u52a8\u8865\u9f50\u589e\u5f3a\u5305\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dnf update &amp;&amp; dnf install -y bash-completion kernel-modules-extra iptables-nft<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u7acb\u5373\u5237\u65b0\u5f53\u524d\u7ec8\u7aef\u73af\u5883\u4f7f\u5176\u751f\u6548<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>source \/etc\/profile.d\/bash_completion.sh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u91cd\u542f\u7cfb\u7edf<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>reboot<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u6dfb\u52a0docker\u6e90<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dnf install -y dnf-plugins-core\ndnf config-manager --add-repo https:\/\/download.docker.com\/linux\/centos\/docker-ce.repo<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b89\u88c5\u5e76\u542f\u52a8\u57fa\u7840\u670d\u52a1<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dnf install -y firewalld docker-ce docker-ce-cli containerd.io<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u9650\u5236 Docker \u65e5\u5fd7\u5927\u5c0f\uff08\u9632\u6b62\u6491\u7206\u786c\u76d8\uff09<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p \/etc\/docker &amp;&amp; cat&gt; \/etc\/docker\/daemon.json &lt;&lt;EOF\n{\n  \"log-driver\": \"json-file\",\n  \"log-opts\": {\n    \"max-size\": \"10m\",\n    \"max-file\": \"3\"\n  }\n}\nEOF\n# \u91cd\u65b0\u542f\u52a8daemon\uff1a\nsystemctl daemon-reload<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u542f\u52a8\u5e76\u542f\u7528\u9632\u706b\u5899\u2026<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>systemctl start firewalld   #\u5f00\u542f\nsystemctl status firewalld  # \u5f00\u542f\u72b6\u6001<\/code><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl enable firewalld  # \u8bbe\u7f6e\u5f00\u673a\u81ea\u542f<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5bbf\u4e3b\u673a\u5bf9\u5916\u7aef\u53e3\u4e0e NAT \u7f51\u7edc\u914d\u7f6e<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u5f00\u542f\u5e38\u7528\u7aef\u53e3\nfirewall-cmd --permanent --zone=public --add-port=80\/tcp\nfirewall-cmd --permanent --zone=public --add-port=443\/tcp\n# HTTP\/3 \/ QUIC\nfirewall-cmd --permanent --zone=public --add-port=443\/udp\nfirewall-cmd --permanent --zone=public --add-port=22\/tcp\n# \u6838\u5fc3\uff1a\u5141\u8bb8\u516c\u5171\u533a\u57df\u7684 IP \u4f2a\u88c5\uff08NAT\u8f6c\u6362\uff09\uff0c\u540c\u65f6\u652f\u6301 IPv4 \u548c IPv6 \u5bb9\u5668\u8bbf\u95ee\u5916\u7f51\nfirewall-cmd --permanent --zone=public --add-masquerade<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># \u91cd\u8f7d\u9632\u706b\u5899\u4f7f\u89c4\u5219\u751f\u6548...\"\nfirewall-cmd --reload<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f00\u542f\u5185\u6838 IP \u8f6c\u53d1\uff08IPv4 + IPv6 \u53cc\u6808\uff09<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat &gt; \/etc\/sysctl.conf &lt;&lt;EOF\nnet.ipv4.ip_forward = 1\nnet.ipv6.conf.all.forwarding = 1\nnet.ipv6.conf.default.forwarding = 1\nnet.core.default_qdisc=fq\nnet.ipv4.tcp_congestion_control=bbr\nEOF\nsysctl -p &amp;&amp; lsmod | grep bbr<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u542f\u52a8 Docker\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl start docker\n# \u67e5\u770b\u8fd0\u884c\u72b6\u6001\nsystemctl status docker<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># \u542f\u52a8\u5e76\u8bbe\u7f6e\u5f00\u673a\u81ea\u542f\nsystemctl enable docker<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u8f7d alpine \u955c\u50cf<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker pull alpine:3.24<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5217\u51fa\u672c\u5730\u4e3b\u673a\u4e0a\u7684\u955c\u50cf<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker images<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u955c\u50cf\u540d:\u6807\u7b7e \u5220\u9664<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker rmi -f alpine:3.24<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5220\u9664 \u5bb9\u5668<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker rm -f alpine<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u542f\u52a8\u5bb9\u5668<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run -itd \\\n  -p 80:80 \\\n  -p 443:443\/tcp \\\n  -p 443:443\/udp \\\n  -e TZ=Asia\/Shanghai \\\n  --restart=always \\\n  --name alpine \\\n  alpine:3.24 \/bin\/sh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u67e5\u770b\u8fd0\u884c\u7684\u5bb9\u5668<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker ps<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fdb\u5165\u5bb9\u5668<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker exec -it alpine \/bin\/sh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5bb9\u5668\u5185\u5b89\u88c5\u4f9d\u8d56\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apk update &amp;&amp; apk upgrade\napk add --no-cache \\\nbuild-base linux-headers perl autoconf automake libtool \\\ncurl pcre-dev zlib-dev git wget mariadb mariadb-client \\\nphp83 php83-fpm php83-mysqli php83-pdo_mysql php83-mbstring php83-json<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u9a8c\u8bc1\u65f6\u95f4<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>date<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u65f6\u95f4\u975eCST\u4f5c\u5982\u4e0b\u4fee\u6539<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#--------------------\u4fee\u590d\u65f6\u95f4--------------------------------------\napk add --no-cache tzdata\n# 1. \u521b\u5efa\u4e0a\u6d77\u65f6\u533a\u7684\u8f6f\u94fe\u63a5\u8986\u76d6\u9ed8\u8ba4\u65f6\u533a\nln -sf \/usr\/share\/zoneinfo\/Asia\/Shanghai \/etc\/localtime\n\n# 2. \u5237\u65b0\u5bb9\u5668\u5185\u7684\u65f6\u533a\u53d8\u91cf\necho \"Asia\/Shanghai\" &gt; \/etc\/timezone\n\n# 4. \u9a8c\u8bc1\u65f6\u95f4\u662f\u5426\u4fee\u6539\u6210\u529f\ndate\n#-----------------------------------------------------------------<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u8f7dgeoip2\u6570\u636e\u5e93<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/root &amp;&amp; git clone https:\/\/github.com\/leev\/ngx_http_geoip2_module.git<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u8f7dlibmaxminddb<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wget -nc https:\/\/github.com\/maxmind\/libmaxminddb\/releases\/download\/1.13.3\/libmaxminddb-1.13.3.tar.gz &amp;&amp; tar -zxvf libmaxminddb-1.13.3.tar.gz &amp;&amp; cd libmaxminddb-1.13.3<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u7f16\u8bd1libmaxminddb<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.\/configure &amp;&amp; make -j$(nproc) &amp;&amp; make install &amp;&amp; ldconfig<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u8f7d\/\u5b89\u88c5\/\u89e3\u538b openssl\u5220\u9664\u5df2\u4f7f\u7528\u6587\u4ef6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd .. &amp;&amp; wget -nc https:\/\/github.com\/openssl\/openssl\/releases\/download\/openssl-4.0.1\/openssl-4.0.1.tar.gz &amp;&amp; tar -zxvf openssl-4.0.1.tar.gz &amp;&amp; rm -rf libmaxminddb-1.13.3.tar.gz openssl-4.0.1.tar.gz\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u8f7d\/\u89e3\u538b nginx\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wget -nc https:\/\/nginx.org\/download\/nginx-1.30.3.tar.gz &amp;&amp; tar -zxvf nginx-1.30.3.tar.gz &amp;&amp; cd nginx-1.30.3\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>\u6dfb\u52a0\u7f16\u8bd1\u63d2\u4ef6\uff1a\n.\/configure \\\n  --prefix=\/usr\/local\/nginx \\\n  --conf-path=\/etc\/nginx\/nginx.conf \\\n  --pid-path=\/var\/run\/nginx.pid \\\n  --lock-path=\/var\/run\/nginx.lock \\\n  --error-log-path=\/var\/log\/nginx\/error.log \\\n  --http-log-path=\/var\/log\/nginx\/access.log \\\n  --with-threads \\\n  --with-file-aio \\\n  --with-http_ssl_module \\\n  --with-http_v2_module \\\n  --with-http_v3_module \\\n  --with-http_realip_module \\\n  --with-http_sub_module \\\n  --with-http_gzip_static_module \\\n  --with-http_auth_request_module \\\n  --with-http_secure_link_module \\\n  --with-http_stub_status_module \\\n  --with-stream \\\n  --with-stream_ssl_module \\\n  --with-stream_realip_module \\\n  --with-stream_ssl_preread_module \\\n  --with-compat \\\n  --add-dynamic-module=..\/ngx_http_geoip2_module \\\n  --with-openssl=..\/openssl-4.0.1 \\\n  --with-openssl-opt=\"no-tests\" \\\n  --with-cc-opt='-march=native -O3'<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>#\u7f16\u8bd1\/\u5b89\u88c5 nginx\nmake -j$(nproc) &amp;&amp; make install<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>#\u5b89\u88c5wordpress\ncd .. &amp;&amp; wget -P \/usr\/local\/nginx\/html\/ https:\/\/cn.wordpress.org\/latest-zh_CN.zip &amp;&amp; unzip \/usr\/local\/nginx\/html\/latest-zh_CN.zip -d \/usr\/local\/nginx\/html\/ &amp;&amp; mv \/usr\/local\/nginx\/html\/wordpress\/* \/usr\/local\/nginx\/html &amp;&amp; rm -rf \/usr\/local\/nginx\/html\/latest-zh_CN.zip \/usr\/local\/nginx\/html\/wordpress\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>#\u5220\u9664\u5df2\u4f7f\u7528\u6587\u4ef6\nrm -rf libmaxminddb-1.13.3 nginx-1.30.3 nginx-1.30.3.tar.gz ngx_http_geoip2_module openssl-4.0.1\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># \u521b\u5efa\u76ee\u5f55\u548c\u8bbe\u7f6e\u6743\u9650.\nmkdir -p \/etc\/nginx\/ssl \/etc\/nginx\/GeoLite2 \/var\/log\/nginx \/etc\/init.d \/run\/php-fpm83\ntouch \/var\/log\/nginx\/access.log \/var\/log\/nginx\/error.log\nchown -R nobody:nobody \/usr\/local\/nginx\/html \/var\/log\/nginx\nsed -i 's|#pid.*logs\/nginx.pid;|pid \/var\/run\/nginx.pid;|g' \/etc\/nginx\/nginx.conf\nsed -i 's|#user  nobody;|user  nobody;|g' \/etc\/nginx\/nginx.conf\nsed -i '\/user  nobody;\/a \\\nload_module \/usr\/local\/nginx\/modules\/ngx_http_geoip2_module.so;\\\nload_module \/usr\/local\/nginx\/modules\/ngx_stream_geoip2_module.so;' \/etc\/nginx\/nginx.conf\nsed -i 's|worker_processes\\s*1;|worker_processes  auto;|g' \/etc\/nginx\/nginx.conf\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u8f7dGeoLite2-Country\u6570\u636e<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wget -O \/etc\/nginx\/GeoLite2\/GeoLite2-Country.mmdb \\\n  https:&#47;&#47;raw.githubusercontent.com\/P3TERX\/GeoLite.mmdb\/download\/GeoLite2-Country.mmdb<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">GeoIP2 \u56fd\u5bb6\u8bc6\u522b<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed -i '\/http {\/a \\\n    # GeoIP2 Country Identification\\n    map $http_x_forwarded_for $clientRealIp {\\n        \"\" $remote_addr;\\n        ~^(?P&lt;firstAddr&gt;&#91;0-9\\\\.]+),?.*$ $firstAddr;\\n    }\\n\\n    geoip2 \/etc\/nginx\/GeoLite2\/GeoLite2-Country.mmdb {\\n        auto_reload 5m;\\n        $geoip2_data_country_code default=XX source=$clientRealIp country iso_code;\\n    }\\n\\n    map $geoip2_data_country_code $allowed_country {\\n        CN      yes;\\n        JP      yes;\\n        HK      yes;\\n        US      yes;\\n        CA      yes;\\n        FR      yes;\\n        default no;\\n    }' \/etc\/nginx\/nginx.conf<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>#\u5b89\u88c5nginx\u914d\u7f6e\u6587\u4ef6\nvim \/etc\/nginx\/nginx.conf<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>server {\u4e0b\u7684<\/li>\n\n\n\n<li>location \/ {\u6dfb\u52a0<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\tif ($allowed_country = no) {\n\t    return 404;\n\t}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u6dfb\u52a0dhparam<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl https:\/\/ssl-config.mozilla.org\/ffdhe2048.txt &gt; \/etc\/nginx\/ssl\/dhparam\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u4fee\u6539 PHP-FPM \u914d\u7f6e\u6587\u4ef6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed -i 's|127.0.0.1:9000|\/run\/php-fpm83\/www.sock|' \/etc\/php83\/php-fpm.d\/www.conf\nsed -i 's|;listen.owner = nobody|listen.owner = nobody|' \/etc\/php83\/php-fpm.d\/www.conf\nsed -i 's|;listen.group = nobody|listen.group = nobody|' \/etc\/php83\/php-fpm.d\/www.conf\nsed -i 's|;listen.mode = 0660|listen.mode = 0660|' \/etc\/php83\/php-fpm.d\/www.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u521d\u59cb\u5316\u6570\u636e\u5e93 MariaDB<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mariadb-install-db --user=mysql --datadir=\/var\/lib\/mysql<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u6dfb\u52a0\u81ea\u542f\u52a8\u811a\u672c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat &gt; \/entrypoint.sh &lt;&lt;EOF\n#!\/bin\/sh\n\n# 1. \u521d\u59cb\u5316 MariaDB \u6570\u636e\u5e93\u76ee\u5f55\nif &#91; ! -d \"\/var\/lib\/mysql\/mysql\" ]; then\n    echo \"\u521d\u59cb\u5316 MariaDB \u6570\u636e\u5e93...\"\n    mariadb-install-db --user=mysql --datadir=\/var\/lib\/mysql &gt; \/dev\/null\nfi\n\n# 2. \u542f\u52a8 MariaDB\uff08\u540e\u53f0\u8fd0\u884c\uff09\necho \"\u6b63\u5728\u542f\u52a8 MariaDB...\"\n\/usr\/bin\/mariadbd-safe --user=mysql --datadir=\/var\/lib\/mysql &amp;\n\n# \u2605\u2605\u2605 \u6838\u5fc3\u4f18\u5316\uff1a\u7b49\u5f85 MariaDB \u771f\u6b63\u542f\u52a8\u5b8c\u6bd5 \u2605\u2605\u2605\necho \"\u7b49\u5f85 MariaDB \u5b8c\u5168\u542f\u52a8...\"\nwhile ! mysqladmin ping --silent; do\n    sleep 1\ndone\necho \"MariaDB \u5df2\u5c31\u7eea\uff01\"\n\n# 3. \u4fee\u590d PHP-FPM \u62a5\u9519\uff1a\u81ea\u52a8\u521b\u5efa\u7f3a\u5931\u7684 runtime \u76ee\u5f55\necho \"\u68c0\u67e5\u5e76\u521b\u5efa PHP-FPM \u8fd0\u884c\u76ee\u5f55...\"\nmkdir -p \/run\/php-fpm83\n\n# 4. \u542f\u52a8 PHP-FPM (\u540e\u53f0\u8fd0\u884c)\necho \"\u6b63\u5728\u542f\u52a8 PHP-FPM...\"\n\/usr\/sbin\/php-fpm83 -D\n\n# 5. \u542f\u52a8 Nginx (\u524d\u53f0\u8fd0\u884c)\necho \"\u6b63\u5728\u542f\u52a8 Nginx...\"\nexec \/usr\/local\/nginx\/sbin\/nginx -g \"daemon off;\"\nEOF\n\n# \u7ed9\u811a\u672c\u8d4b\u4e88\u53ef\u6267\u884c\u6743\u9650\nchmod +x \/entrypoint.sh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u9000\u51fa \u5bb9\u5668<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#\u952e\u76d8\uff1a<br>Ctrl+P+Q<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5728\u5bbf\u4e3b\u673a\u4e0a\u9501\u5b9a\u8fd9\u4e2a\u4f4d\u7f6e\uff08\u6700\u5173\u952e\uff09\u811a\u672c\u5199\u5728 \/entrypoint.sh \u540e\uff0c\u5fc5\u987b\u5728\u5bbf\u4e3b\u673a\u4e0a\u901a\u8fc7 docker commit \u544a\u8bc9 Docker\uff1a\u201c\u4ee5\u540e\u5bb9\u5668\u5f00\u673a\uff0c\u5c31\u53bb\u6267\u884c\u6839\u76ee\u5f55\u4e0b\u7684\u8fd9\u4e2a\u811a\u672c\u201d\u3002<\/li>\n\n\n\n<li>\u5728\u5bbf\u4e3b\u673a\u6267\u884c\uff1adocker001\/alpine3.24:v1<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker commit --change='ENTRYPOINT &#91;\"\/bin\/sh\", \"\/entrypoint.sh\"]' 'CONTAINER ID' 'docker\u6ce8\u518c\u7528\u6237\u540d\/daocker\u5efa\u7684\u5e93\u540d:\u6807\u7b7e<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>#======\u63a8\u9001\uff08Push\uff09\u955c\u50cf\u5230\u4e91\u7aef=========\n# \u7ed9\u672c\u5730\u955c\u50cf\u6253\u6807\u7b7e\uff08Tag\uff09\n# Docker \u89c4\u5b9a\uff0c\u4e0a\u4f20\u955c\u50cf\u524d\u5fc5\u987b\u628a\u955c\u50cf\u540d\u5b57\u6539\u6210 \u7528\u6237\u540d\/\u4ed3\u5e93\u540d:\u6807\u7b7e \u7684\u683c\u5f0f\uff0c\u5426\u5219 Docker \u4e0d\u77e5\u9053\u4f60\u60f3\u5f80\u8c01\u7684\u5bb6\u95e8\u53e3\u9001\u3002\u5728\u5bbf\u4e3b\u673a\u6267\u884c\uff1a\ndocker commit --change='ENTRYPOINT &#91;\"\/bin\/sh\", \"\/entrypoint.sh\"]' 'CONTAINER ID' 'docker001\/alpine3.24:v1'\n#\u63a8\u9001\uff08Push\uff09\u955c\u50cf\u5230\u4e91\u7aef\ndocker login -u &lt;\u7528\u6237\u540d&gt;\ndocker push docker001\/alpine3.24:v1\n#======\u540c\u6b65\u4e0b\u8f7d\uff08Pull\uff09\u955c\u50cf\u5230\u672c\u5730=========\n#\u5728\u5bbf\u4e3b\u673a\u7ec8\u7aef\u6267\u884c\u767b\u5f55\u547d\u4ee4\uff0c\u8f93\u5165\u4f60\u7684\u8d26\u53f7\u5bc6\u7801\uff08\u6216\u8005 Access Token\uff09\uff1a\ndocker login -u &lt;\u7528\u6237\u540d&gt;\ndocker pull docker001\/alpine3.24:v1\n#=====================================<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>\u5220\u6389\u65e7\u5bb9\u5668\ndocker stop alpine\ndocker rm -f alpine<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run -itd \\\n  -p 80:80 \\\n  -p 443:443\/tcp \\\n  -p 443:443\/udp \\\n  -e TZ=Asia\/Shanghai \\\n  --restart=always \\\n  -v \/var\/log\/nginx:\/var\/log\/nginx \\\n  --name alpine \\\n  docker001\/alpine3.24:v1<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>#\u8fdb\u5165\u5bb9\u5668\ndocker exec -it alpine \/bin\/sh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">mysql\u6216MariaDB\u5b89\u5168\u52a0\u56fa\uff1a\u4f1a\u8bbe\u7f6e\u5bc6\u7801\uff0c\u754c\u97621\u76f4\u63a5\u56de\u8f66\uff0c\u754c\u97622\u9009N\uff0c\u5269\u7684\u90fd\u9009Y<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql_secure_installation<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">root\u767b\u5f55\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql -u root -p<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>#\u521b\u5efa\u6570\u636e\u5e93\uff1a\nCREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\n\n#\u521b\u5efa\u7528\u6237\nCREATE USER 'wp_user'@'localhost' IDENTIFIED BY '\u4f60\u7684\u5b89\u5168\u5bc6\u7801';\n\n#\u6388\u4e88\u6743\u9650\uff1a\nGRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';\n\n#\u6700\u540e\u52a1\u5fc5\u5237\u65b0\u6743\u9650\nFLUSH PRIVILEGES;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>#\u9000\u51fa\uff1a\nexit<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>vi \/etc\/nginx\/nginx.conf\n#===========80\u7aef\u53e3\u6d4b\u8bd5=========\n        location \/ {                                                        \n            root   html;                                                    \n            index  index.html index.htm;                                    \n        }\n#---------------\u4fee\u6539\u4e3a-----------------------------------------------\n        location ~ \\.php$ {\n            fastcgi_pass unix:\/run\/php-fpm83\/www.sock;\n            fastcgi_index index.php;\n            include fastcgi_params;\n            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n        }\n            root  \/usr\/local\/nginx\/html;\n            index index.php index.html index.htm;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>#\u91cd\u65b0\u52a0\u8f7d\u914d\u7f6e\u6587\u4ef6\uff0c\u4e0d\u91cd\u542f\u670d\u52a1<br>\/usr\/local\/nginx\/sbin\/nginx -s reload<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5bbf\u4e3b\u673aRed Hat\u7cfb \u66f4\u65b0\u7cfb\u7edf\u5e76\u5b89\u88c5\u81ea\u52a8\u8865\u9f50\u589e\u5f3a\u5305\uff1a \u7acb\u5373\u5237\u65b0\u5f53\u524d\u7ec8\u7aef\u73af\u5883\u4f7f\u5176\u751f\u6548 \u91cd\u542f\u7cfb\u7edf \u6dfb\u52a0docke&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-283","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.book2020.top\/index.php?rest_route=\/wp\/v2\/posts\/283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.book2020.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.book2020.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.book2020.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.book2020.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=283"}],"version-history":[{"count":11,"href":"https:\/\/www.book2020.top\/index.php?rest_route=\/wp\/v2\/posts\/283\/revisions"}],"predecessor-version":[{"id":301,"href":"https:\/\/www.book2020.top\/index.php?rest_route=\/wp\/v2\/posts\/283\/revisions\/301"}],"wp:attachment":[{"href":"https:\/\/www.book2020.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.book2020.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.book2020.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}