首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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基础镜像)

下一篇
举报
领券