返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >docker怎么自定义镜像构建php7
  • 770
分享到

docker怎么自定义镜像构建php7

2024-04-02 19:04:59 770人浏览 独家记忆
摘要

这篇文章主要讲解了“Docker怎么自定义镜像构建PHP7”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“docker怎么自定义镜像构建php7”吧!首先进行

这篇文章主要讲解了“Docker怎么自定义镜像构建PHP7”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“docker怎么自定义镜像构建php7”吧!

首先进行简单的docker安装。

要进行自定义镜像,我们需要选择一个基础镜像进行构建自己的镜像:其实说白了,就是在一个有基础定义好的容器内,执行安装各种程序的命令,生成 所谓的dockerfile 文件,既然如此第一步我们首先需要找一个本地的镜像作为基础镜像来操作即可:

1

docker怎么自定义镜像构建php7
如上图所示,我们来以Centos为基础镜像,来构建一个dockerfile

2第二步我们需要构建一个目录,用于存放dockerfile文件

docker怎么自定义镜像构建php7

在root下构建docker_demo目录,存放 dockerfile文件以及需要安装的程序文件即可,因为我要搭建php的自定义环境,所以我们再来搞一个php7的压缩包即可

wget Http://am1.php.net/get/php-7.0.0.tar.gz/from/this/mirror

docker怎么自定义镜像构建php7

然后改名字

docker怎么自定义镜像构建php7

现在php Nginx都有了,至于composer可以在php安装成功以后再自行操作即可~~~

接下来就是编写dockerfile文件了,在此之前,简单了解下dockerfile编写的关键字格式:

from 代表基于哪个镜像

run 安装软件使用

maintainer 镜像的创建者

cmd 容器启动时执行的命令,但是一个dockerfile中只能有一条cmd命令,多条则只执行最后一条cmd

entrypoint 容器启动时执行的命令,但是一个dockerfile中只能有一条cmd命令,多条则只执行最后一条

user 使用哪个用户运行container

expose 容器内部服务暴露的端口,主机上还需要在run容器时,做端口映射:

docker run -d -p 80:8080 centos6xxx

上边命令表示把容器内部的8080端口映射到主机80端口上

env 用来设置环境变量

add 将主机上的文件拷贝到container内的对应路径,所有拷贝到容器中的文件和文件夹权限为0755,uid和gid为0,如果文件是可识别的压缩格式,则docker会帮忙解压缩,add只有在build镜像的时候运行一次,后面运行container的时候不会再重新加载了。

例子如:

add nginx-1.12.2.tar.gz /usr/local/src

volume 可以将本地文件夹或者其他容器的文件夹挂在到容器内。

workdir 切换目录使用,(相当于cd目录)

onbuild 指定的命令在构建镜像时不执行,而是在它的子镜像中执行。

学完了dockerfile基础命令,我们来试着搞一搞这个环境.

docker pull centos

首先下载一个基础镜像,如果有这一步请忽略,下面是我的dockerfile

# base image
# 基础镜像
from docker.io/centos

# maintainer编写者
maintainer xy61521@163.com

# put nginx-1.12.2.tar.gz into /usr/local/src and unpack nginx 来吧nginx 和php提前都放进基础镜像的/usr/local/src目录下,方便编译安装
add nginx-1.12.2.tar.gz /usr/local/src
add php-7.0.0.tar.gz /usr/local/src

# running required command 安装nginx的一系列乱七八糟的依赖包
run yum install -y GCc gcc-c++ glibc make autoconf openssl openssl-devel
run yum install -y libxslt-devel -y gd gd-devel geoip geoip-devel pcre pcre-devel
run useradd -m -s /sbin/nologin nginx

# change dir to /usr/local/src/nginx-1.12.2
workdir /usr/local/src/nginx-1.12.2

# execute command to compile nginx
run ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-file-aio --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module && make && make install

#先装个本地Mysql
run yum install -y wget
run wget http://repo.mysql.com/mysql57-commUnity-release-el7-8.noarch.rpm
run rpm -ivh mysql57-community-release-el7-8.noarch.rpm
run yum install -y mysql-server


#截止此,开始安装php,宇宙惯例,开始安装一些编译的依赖包
run yum -y install epel-release
run yum -y install libmcrypt-devel
run yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel
workdir /usr/local/src/php-7.0.0
#编译 安装
run ./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-config-file-scan-dir=/usr/local/php7/etc/php.d --with-mcrypt=/usr/include --enable-mysqlnd --with-mysqli --with-pdo-mysql --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-gd --with-iconv --with-zlib --enable-xml --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-Sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache && make && make install

run cp php.ini-production /usr/local/php7/etc/php.ini

构建成功dockerfile文件之后,docker build进行构建

docker build -t centos_lnmp:v1 .

后边的.代表相对路径当前目录,也可使用绝对路径

然后就是漫长的等待

docker怎么自定义镜像构建php7

直到构建成功镜像,至此我们重新开始

docker images

docker怎么自定义镜像构建php7

我们看到该镜像已经构建成功(有一点几率构建失败,失败的话删除容器和镜像重新构建即可),然后运行

docker run -dt -p 80:80 centos_lnmp:v1

docker怎么自定义镜像构建php7

成功后则可进入容器,配置nginx php 。

感谢各位的阅读,以上就是“docker怎么自定义镜像构建php7”的内容了,经过本文的学习后,相信大家对docker怎么自定义镜像构建php7这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: docker怎么自定义镜像构建php7

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

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

猜你喜欢
  • docker怎么自定义镜像构建php7
    这篇文章主要讲解了“docker怎么自定义镜像构建php7”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“docker怎么自定义镜像构建php7”吧!首先进行...
    99+
    2024-04-02
  • Docker进阶之构建自定义镜像实战指南
    目录一、什么是 Docker 镜像?二、自定义镜像的好处?三、构建自己的Centos四、RUN、CMD和ENTRYPOINT的区别五、【实战】Dockerfile制作tomcat镜像小结一、什么是 Docker 镜像? Docker 镜像可...
    99+
    2024-04-02
  • Dockerfile构建自定义镜像的实现
    目录前言 Dockerfile简介 Dockerfile构建镜像的流程 Dockerfile使用 前言 前面文章中使用docker运行容器使用的镜像都是从dockerhub上远程p...
    99+
    2024-04-02
  • jenkins怎么构建docker镜像
    Jenkins是一个持续集成和持续交付(CI/CD)工具,可以用来自动化构建、测试和部署应用程序。要在Jenkins中构建Docke...
    99+
    2023-10-27
    jenkins docker
  • docker怎么构建centos镜像
    要构建一个CentOS镜像,可以按照以下步骤操作: 首先,需要在本地安装Docker。可以在官方网站上下载适合您操作系统的Doc...
    99+
    2023-10-27
    docker centos
  • 怎么构建自己的docker容器镜像
    本文小编为大家详细介绍“怎么构建自己的docker容器镜像”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么构建自己的docker容器镜像”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一. 设置docker构建...
    99+
    2023-07-05
  • docker中Dockerfile如何自定义tomcat镜像
    小编给大家分享一下docker中Dockerfile如何自定义tomcat镜像,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   &...
    99+
    2023-06-04
  • Docker镜像构建中docker commit怎么使用
    这篇“Docker镜像构建中docker commit怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Doc...
    99+
    2023-06-29
  • docker怎么手动构建新镜像
    本文小编为大家详细介绍“docker怎么手动构建新镜像”,内容详细,步骤清晰,细节处理妥当,希望这篇“docker怎么手动构建新镜像”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
    99+
    2024-04-02
  • Dockerfile自定义镜像 - 基于 java:8-alpine 镜像,将一个Java项目构建为镜像
      目录   一、前置知识 1.镜像结构 2.Dockerfile是什么 二、自定义一个 java 项目镜像 1.创建一个空目录,在这个空目录中创建一个文件,命名为 DockerFile,最后将 java 项目打包成 jar 包,放到这个目...
    99+
    2023-09-23
    Docker
  • docker怎么通过Dockerfile构建mysql镜像
    本篇内容主要讲解“docker怎么通过Dockerfile构建mysql镜像”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“docker怎么通过Dockerfile构建mysql镜像”吧!构建Do...
    99+
    2023-06-30
  • 使用Dockerfile构建docker镜像
    目录使用Dockerfile构建docker镜像 1、什么是Dockerfile?2、执行一个Dockerfile,构建镜像   今天我们看看Dockerfile...
    99+
    2024-04-02
  • Docker镜像多架构构建介绍
    前言: 目前arm系统越来越常见,对镜像的多架构需求也越来越大。对于同一个镜像,最简单的办法就是在amd64或arm机器上build后通过不同的tag进行区分,比如 nginx:v1...
    99+
    2024-04-02
  • 使用Dockerfile怎么构建一个Docker镜像
    这篇文章将为大家详细讲解有关使用Dockerfile怎么构建一个Docker镜像,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Dockerfile是一个文本文件,其内包含了一条条的指令(In...
    99+
    2023-06-06
  • docker怎么创建镜像
    创建Docker镜像的步骤如下:1. 编写Dockerfile:创建一个文本文件,命名为Dockerfile,并在其中描述镜像的构建...
    99+
    2023-09-16
    docker
  • docker基于Alpine Linux构建镜像
    Alpine Linux,一个只有5M的Docker镜像。是一个面向安全的轻型Linux发行版。不同于通常Linux发行版,Alpine Linux采用了musl libc和busybox以减小系统的体积和运行时资源消耗。在保持瘦身的同时,...
    99+
    2023-01-30
    镜像 docker Alpine
  • docker官方mysql镜像自定义配置的方法
    这篇“docker官方mysql镜像自定义配置的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看...
    99+
    2024-04-02
  • Docker如何使用自定义镜像站点修改
    这篇文章将为大家详细讲解有关Docker如何使用自定义镜像站点修改,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用自定义镜像站点修改/etc/default/docke...
    99+
    2024-04-02
  • 如何使用Dockerfile创建自定义镜像
    要使用Dockerfile创建自定义镜像,请按照以下步骤: 创建一个新的文件夹,并在文件夹中创建一个名为Dockerfile的文...
    99+
    2024-04-02
  • 怎么使用 Gradle构建Spring-Boot的Docker镜像
    这期内容当中小编将会给大家带来有关怎么使用 Gradle构建Spring-Boot的Docker镜像,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。通常我们使用 Dockerfile 来构建项目的Docke...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作