1、构建ubuntu-base环境

 #10.0.0.28:
 [root@rocky8 ubuntu_base]#vim Dockerfile
 FROM ubuntu:20.04
 LABEL maintainer="www.wang.org" version="ubuntu_base:v1.0"
 ​
 RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
 ​
 RUN apt update && \
    apt -y install tree wget vim curl iproute2 tzdata zip unzip && \
     rm -f /etc/localtime && \
     ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
 [root@rocky8 ubuntu_base]#docker build -t ubuntu_base:v1.0 .

2、基于ubuntu-base镜像构建php环境

#10.0.0.28:
 [root@rocky8 ubuntu_php]#vim Dockerfile
 FROM ubuntu_base:v1.0
 LABEL maintainer="www.wang.org" version="ubuntu_php:v1.0"
 ​
 ADD php-7.4.30.tar.gz /usr/local/src/
 ​
 RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
 RUN apt update && \
    apt -y install gcc make libssl-dev libxml2-dev libsqlite3-dev libcurl3-dev libxml2 sqlite3 pkg-config zlib1g-dev libonig-dev libkrb5-dev libssl-dev libbz2-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libfreetype-dev g++ libonig-dev libxslt-dev libzip-dev && \
     cd /usr/local/src/php-7.4.30 && \
    ./configure --prefix=/apps/php74 --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-zlib --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-mbstring --enable-xml --enable-sockets --enable-fpm --enable-maintainer-zts --disable-fileinfo && \
     make && make install && \
    useradd -r -u 888 nginx
 ​
 COPY php.ini /apps/php74/etc/
 COPY www.conf /apps/php74/etc/php-fpm.d/
 COPY php-fpm.conf /apps/php74/etc/
 ​
 ​
 [root@rocky8 ubuntu_php]#ls
 Dockerfile php-7.4.30.tar.gz php-fpm.conf php.ini www.conf
 ​
 [root@rocky8 ubuntu_php]#docker build -t ubuntu_php:v1.0 .

3、基于php镜像构建nginx镜像

 #10.0.0.28:
 [root@rocky8 ubuntu_nginx]#vim Dockerfile
 FROM ubuntu_php:v1.0
 LABEL maintainer="www.wang.org" version="ubuntu_nginx:v1.0"
 ​
 ADD nginx-1.22.0.tar.gz /usr/local/src/
 ​
 RUN apt update && \
    apt install -y nfs-kernel-server nfs-common gcc openssh-server lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev unzip zip make
 RUN cd /usr/local/src/nginx-1.22.0 && \
    ./configure --prefix=/apps/nginx && \
     make && make install && \
     ln -s /apps/nginx/sbin/nginx /usr/bin && \
     mkdir /apps/nginx/conf/conf.d && \
     rm -rf /usr/local/src/nginx-1.22.0/*
 ​
 ADD nginx.conf /apps/nginx/conf/nginx.conf
 ​
 RUN chown -R nginx.nginx /apps/nginx/
 ​
 COPY run_nginx.sh /usr/local/sbin/
 ​
 EXPOSE 80 443
 ​
 CMD ["run_nginx.sh"]
 ​
 [root@rocky8 ubuntu_nginx]#vim run_nginx.sh
 /apps/php74/sbin/php-fpm
 /apps/nginx/sbin/nginx -g "daemon off;"
 ​
 [root@rocky8 ubuntu_nginx]#chmod +x run_nginx.sh
 ​
 [root@rocky8 conf.d]#vim wordpress.wang.org.conf
 server {
    listen 80;
    server_name wordpress.wang.org;
    root /data/wordpress;
    index index.php index.html index.htm;
    location ~ \.php$|ping {
        root /data/wordpress;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
 }
 ​
 [root@rocky8 ubuntu_nginx]#docker build -t ubuntu_nginx:v1.0 .
 ​
 [root@rocky8 data]#groupadd -r -g 888 nginx
 [root@rocky8 data]#useradd -u 888 -g nginx -s /sbin/nologin -r nginx
 [root@rocky8 data]#id nginx
 uid=888(nginx) gid=888(nginx) groups=888(nginx)
 [root@rocky8 data]#chmod -R nginx.nginx /data/wordpress/     #如果不给权限,wordpress连接数据会报无法写入的错误
 ​
 ​
 [root@rocky8 conf.d]#docker run -it -d -p 80:80 --name wordpress -v /data/conf.d:/apps/nginx/conf/conf.d -v /data/wordpress:/data/wordpress ubuntu_nginx:v1.0

4、安装数据库

 #10.0.0.28:
 root@rocky8 ~]#docker pull mysql:8.0.30-oracle
 ​
 [root@rocky8 ~]#docker run -d --name mysql --network container:wordpress -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e MYSQL_PASSWORD=123456 -v /data/mysql:/var/lib/mysql mysql:8.0.30-oracle
 ​
 [root@rocky8 conf.d]#docker ps
 CONTAINER ID   IMAGE                 COMMAND                 CREATED         STATUS         PORTS                                       NAMES
 b5c7e672d29f   mysql:8.0.30-oracle   "docker-entrypoint.s…"   9 minutes ago   Up 9 minutes                                                 mysql
 15a1a13becbe   ubuntu_nginx:v1.0     "run_nginx.sh"           12 minutes ago   Up 12 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 443/tcp   wordpress
 ​

5、实现harbor高可用

 #10.0.0.101:
 [root@ubuntu2004 ~]#bash install_harbor.sh
 [root@ubuntu2004 ~]#vim /apps/harbor/harbor.yml
 hostname: 10.0.0.101
 [root@ubuntu2004 ~]#/apps/harbor/prepare
 ​
 [root@ubuntu2004 ~]#vim /etc/docker/daemon.json
 {
   "registry-mirrors": ["https://pgavrk5n.mirror.aliyuncs.com"],
   "insecure-registries": ["10.0.0.101","10.0.0.102"]
 ​
 }
 [root@ubuntu2004 ~]#systemctl restart docker.service
 [root@ubuntu2004 ~]#systemctl restart harbor.service
 ​
 ​
 ##10.0.0.102:
 [root@ubuntu2004 ~]#bash install_harbor.sh
 [root@ubuntu2004 ~]#vim /apps/harbor/harbor.yml
 hostname: 10.0.0.102
 [root@ubuntu2004 ~]#/apps/harbor/prepare
 ​
 [root@ubuntu2004 ~]#vim /etc/docker/daemon.json
 {
   "registry-mirrors": ["https://pgavrk5n.mirror.aliyuncs.com"],
   "insecure-registries": ["10.0.0.101","10.0.0.102"]
 }
 [root@ubuntu2004 ~]#systemctl restart docker.service
 [root@ubuntu2004 ~]#systemctl restart harbor.service
 ​
 ​
 #浏览器分别登陆101和102设置:项目、目标和规则
 ​

5-1、上传测试
 [root@rocky8 ubuntu_nginx]#docker login 10.0.0.101
 [root@rocky8 ubuntu_nginx]#docker tag ubuntu_nginx:v1.0 10.0.0.101/test/ubuntu_nginx:v1.0
 [root@rocky8 ubuntu_nginx]#docker push 10.0.0.101/test/ubuntu_nginx:v1.0
 ​

构建LNP镜像的更多相关文章

  1. 微服务架构 - 基于Harbor构建本地镜像仓库

    之前写过<搭建docker本地镜像仓库并提供权限校验及UI界面>文章,然后有同仁评论道这样做太复杂了,如果Harbor来搭建会更简单同时功能也更强大.于是抽时间研究了基于Harbor构建本 ...

  2. 多阶段构建Docker镜像

    在Docker 17.05及更高的版本中支持支持一种全新的构建镜像模式:多阶段构建: 多阶段构建Docker镜像的最大好处是使构建出来的镜像变得更小: 目前常见的两个构建镜像的方式为: 1.直接使用某 ...

  3. Docker构建YApi镜像, Docker安装YApi, Docker部署YApi

    概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互体验,开发 ...

  4. 使用Jenkins pipeline流水线构建docker镜像和发布

    新建一个pipeline job 选择Pipeline任务,然后进入配置页面. 对于Pipeline, Definition选择 "Pipeline script from SCM" ...

  5. Docker学习之4——构建NGINX镜像

    Nginx是一个高性能的Web和反向代理服务器,它具有很多非常优越的特性:1.作为Web服务器.2.作为负载均衡服务器.3.作为邮件代理服务器.4.安装及配置简单.接下来我们介绍在docker构建ng ...

  6. docker构建自定义镜像

    docker构建自定义镜像 要构建一个镜像,第一步准备所需要的文件,第二步编写Dockerfile文件,比如我现在构建一个java web镜像 第一步:准备java web工程的war包文件(这里假设 ...

  7. Docker:使用Jenkins构建Docker镜像

    Docker  彭东稳  1年前 (2016-12-27)  10709次浏览  已收录  0个评论 一.介绍Jenkins Jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从 ...

  8. jenkins构建docker镜像上传到harbor并发布到kubernetes

    很早之前写过一篇jenkins集成docker的文章,使用的是CloudBees Docker Build and Publish plugin插件.这篇文章是直接使用shell脚本做的,主要是这次有 ...

  9. 打包应用和构建Docker镜像(docker在windows上)

    在构建Docker时编译应用 一般有两种方法在构建镜像时进行打包应用.第一种方法就是使用基本的镜像,该镜像包括应用平台和构建工具,因此在Dockerfile中,复制源代码到镜像中并在构建镜像时编译ap ...

随机推荐

  1. Python图像处理丨基于OpenCV和像素处理的图像灰度化处理

    摘要:本篇文章讲解图像灰度化处理的知识,结合OpenCV调用cv2.cvtColor()函数实现图像灰度操作,使用像素处理方法对图像进行灰度化处理. 本文分享自华为云社区<[Python图像处理 ...

  2. CF-1623C

    Problem - 1623C - Codeforces 题意: 给出一个序列,从第三个数字开始,你可以让他减少3*d,然后让它的前两个数字,分别加2*d,和d,找出序列中的最小值的最大值. 题解: ...

  3. class 中的 构造方法、static代码块、私有/公有/静态/实例属性、继承 ( extends、constructor、super()、static、super.prop、#prop、get、set )

     part 1         /**          * << class 中的 static 代码块与 super.prop 的使用          *          * - ...

  4. 从代码到发包,一个程序全搞定!Gitea 推出软件包自托管功能 Package Registry

    2022 年 7 月的最后一天,随着 Gitea 1.17.0 版本的正式发布,Gitea 开源社区推出了一项名为 Package Registry 的包管理功能,与 Gitea 代码仓库无缝集成,类 ...

  5. 华南理工大学 Python第5章课后小测-2

    1.(单选)下面语句的输出结果是: ls = [] def func(a, b): ls.append(b) return a*b s = func("hi", 2) print( ...

  6. 后端程序员实现一个IP归属地的小程序

    在日常开发中,后端主要提供数据以及处理业务逻辑,前端主要提供页面布局以及数据展示.后端程序员对于页面布局接触比较少,但是小程序有完善的文档说明.页面布局也相对简单,实现起来相对简单一些.而且小程序相对 ...

  7. GitHub desktop常见问题及解决办法

    1.There are unresolved conflicts in the working directory. 问题出现:A台电脑push代码后,可能新建了分支,然后B电脑打开GitHub de ...

  8. MySQL常用函数整理,建议收藏!

    常见函数 字符串函数 数字函数 日期函数 聚合函数 流程控制函数 一.字符串函数 concat(s1,s2...,sn) --将s1,s2...,sn连接成字符串,如果该函数中的任何参数为 null, ...

  9. 【疑难杂症】关于pycharm无法安装插件显示网络错误问题

    今天实在受不了英文的pycharm了,想着赶紧装个中文的插件,结果插件界面给我说我网络有问题 search results are not loaded check the internet conn ...

  10. Kubernetes里的Service是如何工作的

    Service是Kubernetes接入层的一种抽象资源,它为我们提供了一种固定的.统一的访问接口地址和负载均衡能力,这时可能会想到,当时使用docker-compose的时候,不存在Service概 ...