专栏首页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标准化 - 通过Dockerfile制作标准化Docker基础镜像和业务镜像(一)

    Gitlab Dockerfile文件会引用腾讯云镜像仓库中的Docker基础镜像,将源代码添加至Docker基础镜像中,打包成Docker业务镜像。部署是基于...

    亮哥说TKE
  • TKE操作指南 - 容器业务部署标准化总结(十六)

    /data/logs/$module_name($module_name指应用名,一般为java应用)

    亮哥说TKE
  • TKE操作指南 - 腾讯云Docker镜像仓库授权连接Gitlab(二)

    镜像仓库用于存放 Docker 镜像,Docker 镜像用于部署容器服务,每个镜像有特定的唯一标识(镜像的 Registry 地址+镜像名称+镜像 Tag)。

    亮哥说TKE
  • Docker 完全指南

    下面的图片比较了 Docker 和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。

    IT派
  • 架构师分享 Docker 新手入门完全指南

    下面的图片比较了 Docker 和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。

    小小科
  • Docker

    以前我们开发项目有专门的开发环境,做测试时有测试环境,而产品上线就会有生产环境,这个过程经常要迁移项目,不同的环境配置可能导致不可预估的错误,要经常性的改动

    晚上没宵夜
  • 架构师分享 Docker 新手入门完全指南

    下面的图片比较了 Docker 和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。

    马哥linux运维
  • Docker 完全指南

    https://wdxtub.com/2017/05/01/docker-guide/

    马哥linux运维
  • 「走进k8s」Docker 基本命令(二)

    PS:基本容器和镜像的常用命令都给老铁们说了,如果你会git或者linux命令比较熟悉docker并不复杂,原理还是很重要的。

    IT故事会
  • Docker常用命令超细介绍

      工欲善其事必先利其器,本文我们首先来给大家介绍下docker中的常用命令,只用对这些常用命令非常熟悉我们才能更好的来使用docker。

    用户4919348

扫码关注云+社区

领取腾讯云代金券