广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >docker封装镜像(PHP)
  • 142
分享到

docker封装镜像(PHP)

docker运维linux 2023-09-13 08:09:41 142人浏览 独家记忆
摘要

一、环境介绍 操作系统:Centos 7.9 cpu:4核心 内存:8GB Docker版本:20.10.17 二、docker commit命令封装镜像 1、拉取centos 7.9镜像 注:需求不

一、环境介绍
操作系统Centos 7.9
cpu:4核心
内存:8GB
Docker版本:20.10.17

二、docker commit命令封装镜像

1、拉取centos 7.9镜像
注:需求不通版本镜像上docker上面去找对应版本

docker pull centos:centos7.9.2009

2、运行容器

docker run -d --privileged=true centos:centos7.9.2009 /usr/sbin/init

注:运行基础镜像需要执行一个命令或是加上-it,不然容器就自动关闭了

3、将软件包复制进容器(出nginx以外的四个软件包)
在这里插入图片描述
找到docker 容器id或者容器名称
在这里插入图片描述

docker cp 本地文件路径 容器ID/容器NAME:容器内路径
例子:

docker cp /root/gbxc/instantclient-basic-linux.x64-12.2.0.1.0.zip 2d23bd5e3690:/root/

4、进入容器

docker exec -it 1c443309a5bc /bin/bash

四个软件包已经存在
在这里插入图片描述
5、安装编译工具及依赖

yum -y install \GCc \gcc-c++ \pcre pcre-devel \autoconf \libaio \bzip2 \unzip \gd \libjpeg libjpeg-devel \libpng libpng-devel \freetype freetype-devel \libxml2 libxml2-devel \zlib zlib-devel \curl curl-devel \openssl openssl-devel \GeoIP GeoIP-devel GeoIP-data

6、解压php软件包,并编译安装
在这里插入图片描述
创建PHP配置文件

mkdir /etc/php

编译

./configure --prefix=/usr/local/php --enable-bcmath --enable-calendar --with-curl --enable-ftp --with-gd --enable-mbstring --enable-Mysqlnd --with-mysqli --with-openssl --with-zlib --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-fpm --enable-session --enable-pdo --enable-tokenizer --enable-zip --with-mysql --with-pdo-mysql --with-config-file-path=/etc/php/

7、未报错后进行安装

make && make install

8、安装oracle相关依赖包
在这里插入图片描述

unzip instantclient-sdk-linux.x64-12.2.0.1.0.zipunzip instantclient-basic-linux.x64-12.2.0.1.0.zipmkdir /usr/lib/oraclemv instantclient_12_2 /usr/lib/oracle/12.2 

创建软连接

cd /usr/lib/oracle/12.2ln -s libclntsh.so.12.1 libclntsh.soln -s libocci.so.12.1 libocci.so

配置lib

echo "/usr/lib/oracle/12.2" > /etc/ld.so.conf.d/oracle-12.2.confldconfig

9、安装oci8
解压进入目录
在这里插入图片描述
生成configure文件

/usr/local/php/bin/phpize

编译

./configure --with-php-config=/usr/local/php/bin/php-config  --with-oci8=instantclient,/usr/lib/oracle/12.2

安装

make install

在这里插入图片描述
10、安装pdo_oci
进入源码目录

cd /root/php-5.6.40/ext/pdo_oci

修改config文件

sed -i "s/10.1/12.2/g" config.m4

生成configure文件

/usr/local/php/bin/phpize

编译

./configure --with-pdo-oci=instantclient,/usr/lib/oracle/12.2,12.2 --with-php-config=/usr/local/php/bin/php-config

安装

make && make install

在这里插入图片描述
11、配置php.ini文件
查看php.ini文件位置

/usr/local/php/bin/php --ini

从源码包复制ini文件

cp /root/php-5.6.40/php.ini-production /etc/php/php.ini

加入oracle配置

cat >> /etc/php/php.ini << EOFextension=oci8.soextension=pdo_oci.soEOF

12、配置php-fpm.conf
在php安装目录有原始文件

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

加入oracle环境变量

cat >> /usr/local/php/etc/php-fpm.conf << EOFenv[LD_LIBRARY_PATH] = /usr/lib/oracle/12.2env[ORACLE_HOME] = /usr/lib/oracle/12.2EOF

13、配置php-fpm开机启动

注意:容器中药执行systemctl,需要添加 --privileged=true参数,开启特权模式,即root权限

复制源码包中启动文件到/usr/lib/systemd/system

cp /root/php-5.6.40/sapi/fpm/php-fpm.service /usr/lib/systemd/system

编辑启动文件,更改php路径

vi /usr/lib/systemd/system/php-fpm.service
[Unit]Description=The PHP FastCGI Process ManagerAfter=syslog.target network.target[Service]Type=simplePIDFile=/usr/local/php/var/run/php-fpm.pidExecStart=/usr/local/php//sbin/php-fpm --nodaemonize --fpm-config /usr/local/php//etc/php-fpm.confExecReload=/bin/kill -USR2 $MaiNPID[Install]WantedBy=multi-user.target

启动

systemctl start php-fpmsystemctl enable php-fpm

14、查看加载的模块

/usr/local/php/bin/php -m

在这里插入图片描述
15、设置php执行环境变量

ln -s /usr/local/php/bin/* /usr/local/bin/ln -s /usr/local/php/sbin/* /usr/local/bin/

在这里插入图片描述
16、添加ngixn(可选,如果需要编译ngixn添加)
上传Nginx软件包到容器内,解压
http://nginx.org/
编译nginx

./configure --prefix=/usr/local/nginx --with-threads --with-Http_ssl_module --with-http_v2_module --with-http_realip_module  --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_sub_module --with-stream --with-stream=dynamic --with-stream_ssl_module --with-stream_realip_module --with-stream_geoip_module --with-stream_geoip_module=dynamic --with-stream_ssl_preread_module

安装

make && make install

设置nginx systemd启动

vi /usr/lib/systemd/system/nginx.service

添加如下

[Unit]Description=nginxAfter=network.target[Service]Type=forkingExecStart=/usr/local/nginx/sbin/nginxExecReload=/usr/local/nginx/sbin/nginx -s reloadExecStop=/usr/local/nginx/sbin/nginx -s quitPrivateTmp=true[Install]WantedBy=multi-user.target 

启动

 systemctl start nginx systemctl enable nginx

17、删除上传的软件包
在这里插入图片描述
18、退出容器,生成镜像

docker commit 1c443309a5bc gbxc-php:v1

在这里插入图片描述
19、缩小镜像(可选)

注意:commit生成的镜像比较大,docker file创建的小,commit即使缩减,也比docker file创建的大的多

进入容器

docker exec -it 1c443309a5bc /bin/bash

清理yum缓存

yum clean all

打包根

tar -cvf gbxcphp.tar --exclude=/proc --exclude=/sys --exclude=gbxcphp.tar /

退出容器并复制gbxcphp.tar到本地目录

docker cp 1c443309a5bc:/gbxcphp.tar .

导入image

cat gbxcphp.tar | docker import - gbxc-php:v2

可以看到容量变小了
在这里插入图片描述
20、上传镜像到私有仓库
打标签

docker tag gbxc-php:v2 harbor.wtown.com/wtown/gbxc-php:v2

推送

docker push harbor.wtown.com/wtown/gbxc-php:v2

来源地址:https://blog.csdn.net/zyj81092211/article/details/127357382

--结束END--

本文标题: docker封装镜像(PHP)

本文链接: https://www.lsjlt.com/news/405573.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • docker封装镜像(PHP)
    一、环境介绍 操作系统:centos 7.9 cpu:4核心 内存:8GB docker版本:20.10.17 二、docker commit命令封装镜像 1、拉取centos 7.9镜像 注:需求不...
    99+
    2023-09-13
    docker 运维 linux
  • Docker 封装java镜像
    目前java采用的框架是Spring,服务器直接通过java -jar xxx.jar就可以启动服务了。 在docker中跑java应用,需要有jdk环境支持才行。获取jdk镜像,有2种方式。1. 自己制作jd...
    99+
    2023-01-31
    镜像 Docker java
  • docker封装redis镜像
    线上使用的redis版本为 3.2.13,但是dockerhub没有此版本的镜像。只有3.2.12但是默认的镜像启动时,是没有redis.conf的,如果需要加配置,需要自己定义配置文件。 创建目录# dock...
    99+
    2023-01-31
    镜像 docker redis
  • docker封装mysql镜像
    直接使用官方的镜像docker pull mysql:5.7但是mysqld.cnf并没有优化,还是默认的。 创建目录# dockerfile目录 mkdir -p /opt/do...
    99+
    2023-01-31
    镜像 docker mysql
  • docker怎么安装ubuntu镜像
    要安装Ubuntu镜像,您需要执行以下步骤: 首先,确保您已经安装了Docker。如果您还没有安装Docker,请根据您的操作系...
    99+
    2023-10-26
    docker ubuntu
  • docker安装mysql、redis镜像方式
    目录docker安装mysql、Redis镜像redis安装下载mysql安装下载docker安装使用及用docker安装mysql,Redis,nacos安装docket常用命令使用docker安装MySQL使用doc...
    99+
    2023-04-26
    docker安装mysql redis镜像 docker mysql
  • Docker如何安装配置Redis镜像
    这篇文章主要介绍Docker如何安装配置Redis镜像,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言如何安装Redis镜像,创建Redis容器并且映射端口挂载数据卷和配置数据。环境CentOS 7Docker 2...
    99+
    2023-06-25
  • linux怎么安装本地docker镜像
    要在Linux上安装本地Docker镜像,您需要执行以下步骤:1. 首先,确保您已经安装了Docker引擎。您可以使用以下命令来检查...
    99+
    2023-08-23
    docker linux
  • 制做docker镜像
    1、制做JAVA运行环境镜像我的基础镜像是基于官网centos 7.2版本制作,没有可以提前下载好#docker pull docker.io/centos[root@R210 ~]# mkdir -p /...
    99+
    2022-10-18
  • docker制作镜像
    从 rootfs 压缩包导入格式:docker import [选项] <文件>|<URL>|- [<仓库名>[:<标签>]]压缩包可以是本地文件、远程 Web 文件,甚至是从标准输入中得到。...
    99+
    2023-01-30
    镜像 docker
  • docker镜像alpine中安装oracle客户端
    目录1.背景2.下载instant_client程序包3.dockerfile说明:4.遇到的问题4.1.找不到libclntsh.so动态连接库4.2.找不到libaio.so.1动态连接库4.3.找不到libnsl....
    99+
    2022-06-28
    docker镜像alpine安装oracle docker alpine安装oracle
  • docker中安装elasticsarch等镜像的过程
    1、在dockerhub中查找镜像 2、查看镜像下的说明,如下图标识成功 a、安装elasticsearch 运行命令 docker run --name myes01 -d -p ...
    99+
    2022-12-26
    docker安装elasticsarch镜像 docker安装elasticsarch docker elasticsarch镜像
  • 关于docker安装python3.8镜像的问题
    docker hub官网 1.搜索python的镜像 docker search python 2. 拉取python镜像 docker pull python 3. 下载完成之...
    99+
    2022-11-12
  • nginx+php-fpm docker镜像合二为一
    在上一篇文章介绍了nginx+php-fpm,链接如下:https://www.cnblogs.com/xiao987334176/p/12918413.html nginx和php-fpm是2个独立的镜像,在实际环境部署过程中,...
    99+
    2023-01-31
    镜像 二为 php
  • Docker本地导入镜像/保存镜像/载入镜像/删除镜像的方法
    本篇内容介绍了“Docker本地导入镜像/保存镜像/载入镜像/删除镜像的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读...
    99+
    2022-10-19
  • 如何安装harbor作为docker镜像仓库
    本篇内容介绍了“如何安装harbor作为docker镜像仓库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!docker.service 如下...
    99+
    2023-07-02
  • docker怎么创建镜像
    创建Docker镜像的步骤如下:1. 编写Dockerfile:创建一个文本文件,命名为Dockerfile,并在其中描述镜像的构建...
    99+
    2023-09-16
    docker
  • Docker Hub 镜像加速器
    国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务。 二、配置加速地址Ubuntu 16.04+、Debian 8+、Cen...
    99+
    2023-01-31
    镜像 加速器 Docker
  • Docker二所镜像制作
    1、dockerfile 里不能有交互式命令。      FROM centos:6.9  加载镜像     &...
    99+
    2022-10-18
  • Docker如何列出镜像
    这篇文章主要介绍了Docker如何列出镜像,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。列出镜像docker images -a&...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作