docker LNMP安装流程
Linux安装Docker
1 2 3 4 5 6 7 8 9 10 11 | # 安装依赖包 yum install -y yum-utils # 添加Docker软件包源 yum-config-manager \ --add-repo \ https: //download .docker.com /linux/centos/docker-ce .repo # 安装Docker CE yum install -y docker-ce # 启动Docker服务并设置开机启动 systemctl start docker systemctl enable docker |
镜像从哪里来?
Docker Hub是由Docker公司负责维护的公共镜像仓库,包含大量的容器镜像,Docker工具默认从这个公共镜像库下载镜
像。
地址:https://hub.docker.com
配置镜像加速器:
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
一. # 案例 容器化搭建个人博客
1.1 自定义网络 实现内部通信
1 | docker network create lnmp |
1.2构建PHP容器 PHP Dockerfile

FROM centos:7 MAINTAINER www.ctnrs.com RUN yum install epel-release -y && \ yum install -y gcc gcc-c++ make gd-devel libxml2-devel \ libcurl-devel libjpeg-devel libpng-devel openssl-devel \ libmcrypt-devel libxslt-devel libtidy-devel autoconf \ iproute net-tools telnet wget curl && \ yum clean all && \ rm -rf /var/cache/yum/* ADD php-5.6.36.tar.gz / RUN cd php-5.6.36 && \ ./configure --prefix=/usr/local/php \ --with-config-file-path=/usr/local/php/etc \ --enable-fpm --enable-opcache \ --with-mysql --with-mysqli --with-pdo-mysql \ --with-openssl --with-zlib --with-curl --with-gd \ --with-jpeg-dir --with-png-dir --with-freetype-dir \ --enable-mbstring --with-mcrypt --enable-hash && \ make -j 4 && make install && \ cp php.ini-production /usr/local/php/etc/php.ini && \ cp sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf && \ sed -i "90a \daemonize = no" /usr/local/php/etc/php-fpm.conf && \ mkdir /usr/local/php/log && \ cd / && rm -rf php* && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ENV PATH $PATH:/usr/local/php/sbin COPY php.ini /usr/local/php/etc/ COPY php-fpm.conf /usr/local/php/etc/ WORKDIR /usr/local/php EXPOSE 9000 CMD ["php-fpm"]
1.3构建nginx Dockerfile

FROM centos:7 LABEL maintainer www.ctnrs.com RUN yum install -y gcc gcc-c++ make \ openssl-devel pcre-devel gd-devel \ iproute net-tools telnet wget curl && \ yum clean all && \ rm -rf /var/cache/yum/* ADD nginx-1.15.5.tar.gz / RUN cd nginx-1.15.5 && \ ./configure --prefix=/usr/local/nginx \ --with-http_ssl_module \ --with-http_stub_status_module && \ make -j 4 && make install && \ mkdir /usr/local/nginx/conf/vhost && \ cd / && rm -rf nginx* && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ENV PATH $PATH:/usr/local/nginx/sbin COPY nginx.conf /usr/local/nginx/conf/nginx.conf WORKDIR /usr/local/nginx EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
1.4构建php基础镜像
1 | root@localhost php] # docker build -t php:v1 . 构建php基础镜像 |
1.5构建Nginx基础镜像
1 | docker build -t nginx:v1 . |
1.6创建mysql容器
1 | docker run -d --name lnmp_mysql --net lnmp -- mount src=mysql-vol,dst= /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress mysql:5.7 --character- set -server=utf8 |
1.7创建php容器
1 2 | docker run -d --name lnmp_php --net lnmp \ -- mount src=wwwroot,dst= /wwwroot php:v1 |
1.8创建Nginx容器
1 2 | docker run -d --name lnmp_nginx --net lnmp -p 88:80 -- mount src=wwwroot,dst= /wwwroot \ -- mount type =bind,src=$PWD /php .conf,dst= /usr/local/nginx/conf/vhost/php .conf nginx:v1 |
1.9验证php是否可用
1 2 3 4 | vim /var/lib/docker/volumes/wwwroot/_data/index .php <?php phpinfo()?> http: //192 .168.1.120:88/ 网页打开发现已经可以识别php页面 |
2.0博客搭建
1 2 3 4 | tar -xvf wordpress-4.9.4-zh_CN. tar .gz -C /var/lib/docker/volumes/wwwroot/_data/ mv wordpress/* /var/lib/docker/volumes/wwwroot/_data http: //192 .168.1.120:88 页面就可以打开操作了 <br><br> vi wp-config.php |
二. Docker安装harbor
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 上传包并解压 tar -xvf harbor-offline-installer-v2.0.0.tgz [root@localhost dockerfile] # mv docker-compose-Linux-x86_64 /usr/bin/docker-compost cd harnog [root@localhost harbor] # cp harbor.yml.tmpl harbor.yml [root@localhost harbor] # chmod +x /usr/bin/docker-compost [root@localhost harbor] # ./prepare [root@localhost harbor] # ./install.sh mkdir /root/ssl/ cd /root/ssl/ [root@localhost ssl] # sh cfssl.sh [root@localhost ssl] # sh certs.sh vim harbor.yml hostname : reg.ctnrs.com http: port: 81 https: port: 443 certificate: /root/ssl/reg .ctnrs.com.pem private_key: /root/ssl/reg .ctnrs.com-key.pem scp /root/ssl/reg .ctnrs.com.pem 192.168.1.121: /etc/docker/certs .d /reg .ctnrs.comreg.ctnrs.com.crt vim /etc/hosts/ 192.168.1.120 reg.ctnrs.com [root@localhost reg.ctnrs.com] # docker login reg.ctnrs.com admin Harbor12345 登陆成功 打标签 并上传镜像 一定注意都是域名 因为是以域名签的证书 [root@localhost reg.ctnrs.com] # docker tag busybox reg.ctnrs.com/library/busybox:v1 [root@localhost reg.ctnrs.com] # docker push reg.ctnrs.com/library/busybox:v1 默认Harboy 数据目录在 /data/ 日志在 cat /var/log/harbor/ |
docker run -d --name lnmp_mysql --net lnmp --mount src=mysql-vol,dst=/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress mysql:5.7 --character-set-server=utf8MYSQL_DATABASE=wordpress mysql:5.7 --character-set-server=utf8
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构