专栏首页TKETKE操作指南 - 制作Nginx和Php Docker基础镜像(三)
原创

TKE操作指南 - 制作Nginx和Php Docker基础镜像(三)

容器云平台Docker镜像

1.Docker基础镜像:提供基础应用型的Docker软件服务(例如:nginx,php,jdk等),所以dockerhub镜像公有镜像自定义私有镜像都可以理解为基础镜像。

2.Docker业务镜像:将Gitlab上的源代码,或通过maven打出来的jar或tar包,添加至基础镜像中,通过构建打包成的Docker业务镜像。(Dockerfile业务镜像是通过构建生成,我会在后面的章节讲解)

我在对wordpress进行容器化时先要制作Docker基础镜像

腾讯云Docker基础镜像制作有两种方式:

commit和dockerfile方式

这里我讲解commit方式且提交至远程仓库步骤如下:

1.安装docker软件(yum install docker或apt-get install docker)

2.下载docker centos镜像(docker pull)

3.创建并进入容器(docker run)

4.nginx docker基础镜像制作

5.将容器提交docker基础镜像(docker commit)

6.php docker基础镜像制作

1.安装docker软件

安装说明:建议系统是centos且版本号必须不小于7.0。

# cat /etc/redhat-release //查看系统版本号,我的是centos 7.5.1804

CentOS Linux release 7.5.1804 (Core)

# yum install docker -y //安装docker软件

# systemctl start dockerd //启动docker服务

# systemctl status dockerd //查看docker状态,返回active (running)说明成功。

systemctl status dockerd

2.下载docker镜像

下载说明:通过docker pull命令去公网仓库下载docker镜像。

# docker pull centos:7.5.1804 //下载centos:7.5.1804 docker镜像

# docker images //查看docker 镜像

REPOSITORY TAG IMAGE ID CREATED SIZE

centos 7.5.1804 cf49811e3cdb 4 months ago 200MB

REPOSITORY是仓库名,TAG 是标签,IMAGE ID是镜像ID,CREATED是镜像创建到至今的时间,SIZE是镜像大小

下载docker镜像

3.创建并进入容器

容器创建说明:通过 docker run -it centos:7.5.1804 /bin/bash 命令创建容器,-i: 以交互模式运行容器,通常与 -t 同时使用;-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;centos:7.5.1804 使用的本地镜像名称;/bin/bash 容器创建后运行的命令。

# docker run -it centos:7.5.1804 /bin/bash //创建并进入容器,可以看到容器ID为52afa115ec6d

[root@52afa115ec6d /]#

4.nginx docker基础镜像制作

[root@52afa115ec6d /]# yum install epel-release -y //在容器里面安装epel源和nginx

[root@52afa115ec6d /]# yum install nginx net-tools -y

[root@52afa115ec6d /]# vi /etc/nginx/nginx.conf //修改nginx配置文件,日志路径可跟进自身需求设置

1.将user nginx;修改成user root; (容器中nginx 要以root用户运行)

2.添加daemon off; (nginx和php等应用型软件安装在容器里面,必须要已守护进程的方式运行)

3.设置worker_processes参数为auto

4.设置access_log对应的路径为/data/logs/nginx/access.log

配置文件如下

[root@52afa115ec6d /]# vi /etc/nginx/conf.d/localhost.conf //日志路径可跟进自身需求设置

添加localhost.conf配置文件

1.设置为nginx 80端口启动

2.server_name为wordpress.tencent.com localhost; (wordpress.tencent.com是wordpress的访问域名,根据业务需求设置)

3.error_log对应路径为/data/logs/nginx/wordpress.tencent.com_error.log

4.wordpress网站根目录是/data/www/wordpress(这个目录暂时不创建,之后会讲解制作Docker业务镜像将源码添加至/data/www/wordpress目录)

5.设置fastcgi_pass unix:/dev/shm/php-fpm.sock; (以nginx和php-fpm 使用uninx socket通信)

[root@52afa115ec6d /]# mkdir /data/logs/nginx -p //创建nginx日志目录

5.将容器提交成docker基础镜像

# docker ps -a | grep 52afa115ec6d //在宿主机新开终端,查看运行的容器ID。

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

52afa115ec6d centos:7.5.1804 "/bin/bash" 9 minutes ago Up 9 minutes reverent_shaw

CONTAINER ID是容器ID,IMAGE是使用的镜像,COMMAND是容器启动运行的命令,CREATED是容器创建到运行至今时间,STATUS是容器当前的状态,PORTS是容器运行的端口,NAMES是容器的名称。

# docker commit 52afa115ec6d test:v1 //通过docker commit命令将容器提交成本地镜像。test是名称,v1是标签

sha256:10e6b0f81fb79b20e603ea12f67f835cc5bff11b629cc706b4c9ce0b48594fd3

# docker images | grep test //查看本地test:v1镜像

通过容器提交镜像

6.php docker基础镜像制作

1.首先利用docker run启动一个centos容器 (参考步骤3)

2.在容器中进行php的安装和配置

# yum install epel-release -y

# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

# yum install php70w php70w-fpm php70w-cli php70w-common php70w-devel php70w-gd php70w-pdo php70w-mysql php70w-mbstring php70w-bcmath php70w-xml php70w-pecl-redis php70w-process php70w-intl php70w-xmlrpc php70w-soap php70w-ldap php70w-opcache -y //安装php-fpm及扩展

# vi /etc/php-fpm.conf

error_log = /data/logs/php/error.log //替换路径

daemonize = no //设置php-fpm已守护进行方式运行

# vi /etc/php-fpm.d/www.conf //日志路径可跟进自身需求设置

user = root //将user = apache修改成user = root

group = root //将group = apache修改成group = root

listen = /dev/shm/php-fpm.sock //将listen = 127.0.0.1:9000 修改成 listen = /dev/shm/php-fpm.sock

listen.owner = root //将listen.owner = user修改成listen.owner = root

listen.group = user //将listen.group = user修改成listen.group = root

slowlog = /data/logs/php/www-slow.log //设置slow日志路径为/data/logs/php

php_admin_value[error_log] = /data/logs/php/www-error.log //设置error日志路径为/data/logs/php

# mkdir /data/logs/php -p //创建php日志目录

3.最后通过commit命令提交成本地镜像,请参考上面第5步(将容器提交成docker基础镜像)

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • TKE操作指南 - 将Docker基础镜像push至腾讯云仓库(四)

    根据TKE操作指南 - 制作Nginx和Php Docker基础镜像(二),现在我们将镜像push至腾讯云仓库

    亮哥说TKE
  • TKE操作指南 - 部署wordpress 容器服务上(十)

    根据TKE操作指南 - 自动化构建,生成Wordpress Docker业务镜像(四)我们已经知道道nginx和php wordpress业务镜像地址

    亮哥说TKE
  • php应用容器化部署实践

    目前市场上 php 仍有一席之地。本文章将探讨如何将 php 应用容器化并迁移部署到 TKE。

    谢正伟
  • TKE操作笔记01

    腾讯云容器服务(Tencent Kubernetes Engine,TKE)是高度可扩展的高性能容器管理服务,您可以在托管的云服务器实例集群上轻松运行应用程序。...

    聂伟星
  • 从无到有基于腾讯云TKE部署Kubernetes全流程(一)

    这里我们希望的是,提供一个腾讯云TKE中部署整个基础环境,以及对部分服务的一个示例。

    蒋经纬
  • 在腾讯云容器服务 TKE 中实践 DevOps

    jokey,腾讯云容器产品工程师,热衷于云原生领域。目前主要负责腾讯云TKE 的售中、售后的技术支持,根据客户需求输出合理技术方案与最佳实践。 概述 DevO...

    腾讯云原生
  • 制作nginx+php的docker镜像及其使用技巧

      docker镜像的制作有2种方法,一种是启动一个容器并在容器里操作,再将容器提交为一个新的镜像;一种是写Dockerfile,然后执行dockerfile由...

    菲宇
  • TKE上搭建企业级镜像仓库Harbor

    本次我们来讲解下如何在TKE上搭建企业级镜像仓库Harbor,这里我们采用的是helm方式部署到TKE集群上,helm部署的harbor会通过ingress暴露...

    聂伟星
  • 在TKE集群搭建harbor仓库

    本次带来的分享是在TKE集群上搭建harbor私有仓库,另外推荐腾讯云的容器镜像服务TCR

    马凌鑫
  • 腾讯云TKE使用

    以下通过视频方式来分别介绍“搭建wordPress”、“腾讯云TKE容器创建Nginx”和“手工搭建Hello world 服务”,因为很多细节不能整理入博客建...

    研究僧
  • 中秋福利 | 15个系列100+篇超实用云原生原创干货合集(内含腾讯彩蛋)

    还有2天,就要迎来中秋小长假啦 这个中秋节你打算怎么过? ? 小云选择把这篇干货全部拿下! 云原生技术干货文章合集,来咯~ ? 2021 年,要说咱们技术圈...

    腾讯云原生
  • 为什么需要自定义一个基础镜像?

    对于使用php (python)等开发的项目,由于是解释型语言并不需要编译代码这个步骤(go或者java将依赖打包到可执行程序(包)中),但是往往还需要安装一些...

    用户1560186
  • Dockerfile 与 Compose 环境搭建学习笔记(一)

    以前一直使用 Vagrant 作为自己的开发环境,并且在上家公司也推行大家采用 Vagrant 作为开发环境,保障公司使用的是同一套开发环境。随着docker的...

    大愚
  • 「开发者手册」手把手教你使用docker搭建你的服务器环境

    最近在腾讯云买了一个服务器(1核、2GB、1Mbps、CentOS 7.2、64位),准备搭建自己的LAMP(Linux、Apache、Mysql、PHP)服务...

    ZhangXianSheng
  • Dockerfile、Docker-Compose基本命令与介绍

    每条RUN指令将在当前镜像基础上执行指定命令,并提交为新的镜像,后续的RUN都在之前RUN提交后的镜像为基础,镜像是分层的,可以通过一个镜像的任何一个历史提交点...

    唐成勇
  • 使用Supervisor管理Docker容器多个进程

    在上一篇文章 <<为什么需要自定义一个基础镜像?>> 介绍如何实现一个php基础镜像,我们在PHP官方镜像之上,添加一些项目必用的php扩展模块,并且安装了 n...

    用户1560186
  • 构建 docker 镜像

    通过 Dockerfile 可以快速构建镜像,而通过 commit 生成镜像可以解决应用在部署过程中有大量交互内容以及难以通过 Dockerfile 构建的问题...

    chenjingwei
  • Docker 从入门到实践

    小小科
  • 用Docker玩转PHP环境配置

    是否有这样的场景,你搞了一个项目,在本地开发时需要搭建环境,放到线上时也需要搭建环境,到公司想暗戳戳玩一下要搭建环境,不搭还不行,因为你的环境依赖还挺多。这个时...

    猿哥

扫码关注云+社区

领取腾讯云代金券