栏目头部广告

Dockerfile构建容器镜像,搭建LNMP网站平台

1. Dockerfile常用指令

Dockerfile构建镜像,搭建LNMP网站平台(图1)

Docker build

典型用法:docker build  -t ImageName:TagName dir .
选项:
(1)-t 指定镜像名
(2)ImageName  给镜像起的名称
(3)TagName 给镜像的Tag名
(4)Dir Dockerfile所在目录
(5)-f 指定Dockerfile的名字,默认就是Dockerfile,如果改成其它名字需要-f指定一下
(6).代表当前目录即上下文,构建镜像时所需文件从哪里找。

例子:

cd /root/dockerfile/nginx
docker build -t nginx:v1 -f Dockerfile .

2. 构建PHP网站平台镜像

Lnmp=Linux+Nginx+MySQL+PHP

Dockerfile构建镜像,搭建LNMP网站平台(图2)

【特别注意】通常将一个服务的所有相关信息都放在同一个目录下,如上图。

虚机IP地址

Dockerfile构建镜像,搭建LNMP网站平台(图3)

2.1 构建nginx镜像配置

[root@docker ~]# vim Dockerfile/nginx/Dockerfile

FROM centos:7

MAINTAINER www.starcto.com

RUN yum install -y gcc gcc-c++ make openssl-devel pcre-devel

ADD nginx-1.12.1.tar.gz /tmp

RUN cd /tmp/nginx-1.12.1 && \

./configure --prefix=/usr/local/nginx && \

make -j 2 && \

make install

RUN rm -rf /tmp/nginx-1.12.1* && yum clean all

COPY nginx.conf /usr/local/nginx/conf

WORKDIR /usr/local/nginx

EXPOSE 80

CMD ["./sbin/nginx", "-g", "daemon off;"]

[root@Docker nginx]# docker image build -t nginx:v1 -f Dockerfile .   构建命令

2.2 构建PHP镜像

[root@docker ~]# vim Dockerfile/php/Dockerfile

FROM centos:7

MAINTAINER www.starcto.com

RUN yum install -y gcc gcc-c++ make gd-devel libxml2-devel libcurl-devel libjpegdevel libpng-devel openssl-devel

ADD php-5.6.31.tar.gz /tmp/

RUN cd /tmp/php-5.6.31 && \

./configure --prefix=/usr/local/php \

--with-config-file-path=/usr/local/php/etc \

--with-mysql --with-mysqli \

--with-openssl --with-zlib --with-curl --with-gd \

--with-jpeg-dir --with-png-dir --with-iconv \

--enable-fpm --enable-zip --enable-mbstring && \

make -j 4 && \

make install && \

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

sed -i "s/127.0.0.1/0.0.0.0/" /usr/local/php/etc/php-fpm.conf && \

sed -i "21a \daemonize = no" /usr/local/php/etc/php-fpm.conf

COPY php.ini /usr/local/php/etc

RUN rm -rf /tmp/php-5.6.31* && yum clean all

WORKDIR /usr/local/php

EXPOSE 9000

CMD ["./sbin/php-fpm", "-c", "/usr/local/php/etc/php-fpm.conf"]

[root@docker php]# docker image build -t php:v1 -f Dockerfile . # 构建命令

Dockerfile构建镜像,搭建LNMP网站平台(图4)

2.3 构建容器与网络

(1)自定义网络

[root@docker /]# docker network create lnmp

(2)创建PHP容器

[root@docker /]# docker run -itd \

--name lnmp_php \

--net lnmp \

--mount type=bind,src=/app/wwwroot/,dst=/usr/local/nginx/html \

php:v1

(3)创建Nginx容器

[root@docker /]# docker run -itd \

--name lnmp_nginx \

--net lnmp \

-p 80:80

--mount type=bind,src=/app/wwwroot/,dst=/usr/local/nginx/html \

nginx:v1

(4)创建MySQL容器

[root@docker /]# docker run -itd \

--name lnmp_mysql \

--net lnmp \

-p 3306:3306

--mount src=mysql-vol,dst=/var/lib/mysql \

-e MYSQL_ROOT_PASSWORD=123456 \

-e MYSQL_DATABASE=wordpress \

mysql:5.7 --character-set-server=utf8

[root@docker ~]# docker volume inspect mysql-vol  # 查看volume卷

Dockerfile构建镜像,搭建LNMP网站平台(图5)

(5)容器网络测试

Dockerfile构建镜像,搭建LNMP网站平台(图6)

#正确进入容器方式

[root@docker ~]# docker exec -it lnmp_nginx sh

Dockerfile构建镜像,搭建LNMP网站平台(图7)

【注】nginx容器、PHP容器、MySQL容器之间的通信是通过内部DNS解析完成的。

(6)部署wordpress

wget https://cn.wordpress.org/wordpress-4.7.4-zh_CN.tar.gz

tar zxf wordpress-4.7.4-zh_CN.tar.gz -C /app/wwwroot

Dockerfile构建镜像,搭建LNMP网站平台(图7)

Dockerfile构建镜像,搭建LNMP网站平台(图9)

Dockerfile构建镜像,搭建LNMP网站平台(图10)

Dockerfile构建镜像,搭建LNMP网站平台(图11)

附件LNMP文件下载地址:

链接:https://pan.baidu.com/s/1vD1KLYLpqKS6plquYaBUmA 

提取码:y38d 

作者:UStarGao
链接:https://www.starcto.com/docker/110.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处

UCloud云平台推荐


UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

文章页广告

随便看看

栏目底部广告
`