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. 刷题记录:Codeforces Round #725 (Div. 3)

    Codeforces Round #725 (Div. 3) 20210704.网址:https://codeforces.com/contest/1538. 感觉这个比上一个要难. A 有一个n个数 ...

  2. [ARC119E] Pancakes (二维偏序,分类讨论)

    题面 一个长为 N N N 的序列 S S S ,最多翻转序列中一个区间,最小化 ∑ i = 2 N ∣ S i − S i − 1 ∣ \sum_{i=2}^{N}|S_i-S_{i-1}| i=2 ...

  3. CCF NOI Online 2021 提高组 T2 积木小赛 (子序列自动机+后缀自动机,O(n^2))

    题面 Alice 和 Bob 最近热衷于玩一个游戏--积木小赛. Alice 和 Bob 初始时各有 n 块积木从左至右排成一排,每块积木都被标上了一个英文小写字母. Alice 可以从自己的积木中丢 ...

  4. LIKE与等式查询比较

    我们知道 char 是定长类型的数据,如果数据长度小于定义的长度,会在字符串尾部加上空格.而对于空格的处理,对于等式匹配,或length等,会忽略空格.而对于like 或模式匹配,空格不能忽略. 一. ...

  5. 新建Github仓库并上传本地代码

    按照Github的教程 Adding a local repository to GitHub using Git 1. 创建空的Github仓库 创建远程仓库 ,注意不要勾选Add a README ...

  6. Java String Pool--String s = new String("a") 到底创建了几个对象?

    本篇重点(tips): 1. String Pool 是以Java 中 String 对象是不可变的这一特性为基础的 2. String Pool是Heap(堆)中的一块特殊空间(JDK 1.7 之前 ...

  7. 一文学会Spring JDBC 使用

    Spring JDBC 1.JDBC JDBC 就是 数据库开发 操作的 代名词,因为只要是现代商业项目的开发那么一定是离不开 数据库 的,不管你搞的是什么,只要是想使用动态的开发结构,那么一定就是 ...

  8. Django 连接数据库 MySQL

    一.Django 连接 MySQL 修改 settings.py 文件 # 默认用的是sqlite3 # Database # https://docs.djangoproject.com/en/4. ...

  9. 14. 第十三篇 二进制安装kube-proxy

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247484231&idx=1&sn=9e722bee ...

  10. Elastic:创建你的第一个Elastic alert

    文章转载自:https://blog.csdn.net/UbuntuTouch/article/details/105340379 在Elasticsearch可以提供给我们数据的存储及快速的搜索,但 ...