1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > docker dockerfile文件 构建 php+nginx 环境

docker dockerfile文件 构建 php+nginx 环境

时间:2023-04-18 12:44:23

相关推荐

docker dockerfile文件 构建 php+nginx 环境

文件目录

问了保证网络错误,把相关的软件先下载到本地再通过

# docker build -t tag之意 -f file文件 后台跟.docker build -t xxx_images -f Dockfile .

Dockfile文件

##使用的基础镜像FROM centos:7.4.1708# MAINTAINER编写者MAINTAINER xxp 332410549@# 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/srcADD php-7.1.19.tar.gz /usr/local/src# running required command 安装NginxWORKDIR /usr/local/src/nginx-1.12.2RUN yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel && \yum install -y libxslt-devel -y gd gd-devel GeoIP GeoIP-devel pcre pcre-devel && \useradd -M -s /sbin/nologin nginx && \# execute command to compile nginx./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#截止此,开始安装php,惯例,开始安装一些编译的依赖包WORKDIR /usr/local/src/php-7.1.19RUN yum -y install epel-release && \yum -y install libmcrypt-devel && \yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel && \#编译 安装./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 --with-redis --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 installRUN cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf && \cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf && \cp php.ini-production /usr/local/php7/etc/php.ini && \mkdir -p /usr/local/src/ioncube_loader_lin_7 && \mkdir -p /var/www/html && \mkdir -p /var/log/nginx && \chown -R nginx:nginx /usr/local/src/ioncube_loader_lin_7 && \echo "zend_extension = /usr/local/src/ioncube_loader_lin_7/ioncube_loader_lin_7.1.so">>/usr/local/php7/etc/php.iniCOPY ioncube_loader_lin_7.1.so /usr/local/src/ioncube_loader_lin_7ADD redis-5.0.2.tgz /usr/localRUN cd /usr/local/redis-5.0.2 \&& /usr/local/php7/bin/phpize \&& ./configure --with-php-config=/usr/local/php7/bin/php-config \&& make \&& make install && \echo "extension=redis.so">>/usr/local/php7/etc/php.ini && \ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx && \ln -s /usr/local/php7/bin/php /usr/bin/php && \mkdir -p /usr/local/nginx/conf/cond.d/ && \chown -R nginx:nginx /var/www/htmlEXPOSE 80 443CMD /usr/local/php7/sbin/php-fpm && /usr/local/nginx/sbin/nginx -g "daemon off;"

运行docker run

在win10下演示

docker run -it -d --name dnmp_shop_b2b2c_v2 -p 9900:80 -v /d/docker/dockerfile/code:/var/www/html -v /d/docker/dockerfile/nginx/etc/nginx.conf:/usr/local/nginx/conf/nginx.conf -v /d/docker/dockerfile/nginx/etc/conf.d:/usr/local/nginx/conf/conf.d -v /d/docker/dockerfile/php/etc/php.ini:/usr/local/php7/etc/php.ini dnmp_b2b2c_v2

推送到阿里云docker镜像

阿里云官方网站链接:https://cr./cn-shenzhen/instances/repositories

创建镜像仓库(创建镜像仓库时要绑定一个代码托管网站,例如:github)

#1.登录到阿里云的doker仓库,–username为阿里云的用户名,另外,密码为开通镜像服务时设置的密码

忘记密码可以点击菜单:“容器镜像服务”->“默认实例”–>“访问凭证”进行修改
1. 登录阿里云Docker Registry

$ sudo docker login --username=xxp****@ -

用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

您可以在访问凭证页面修改凭证密码。

2. 从Registry中拉取镜像

$ sudo docker pull -/swoole0008/shop-b2b2c:[镜像版本号]

实例

docker tag 0d4d7c4cfb21 -/swoole0008/shop-b2b2c:v1

3. 将镜像推送到Registry

$ sudo docker login --username=xxp****@ -

$ sudo docker tag [ImageId] -/swoole0008/shop-b2b2c:[镜像版本号]

$ sudo docker push -/swoole0008/shop-b2b2c:[镜像版本号]

请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。

实例

docker push -/swoole0008/shop-b2b2c:v1

4. 选择合适的镜像仓库地址

从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。

如果您使用的机器位于VPC网络,请使用 registry-- 作为Registry的域名登录。

5. 示例

使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。

$ sudo docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE

/acs/agent 0.7-dfb6816 37bb9c63c8b2 7 days ago 37.89 MB

$ sudo docker tag 37bb9c63c8b2 registry--/acs/agent:0.7-dfb6816

使用 “docker push” 命令将该镜像推送至远程。

$ sudo docker push registry--/acs/agent:0.7-dfb6816

开启redis-docker服务

docker pull redisdocker run -d --name shop-redis -p 6379:6379 redis --requirepass "shopredis6379"

下载mysql-dockerf服务

docker pull mysql:5.6#运行docker run --name=shopsc-mysql \-e MYSQL_DATABASE=kamocloud \-p 3308:3306 \-e MYSQL_USER=mysql \-e MYSQL_PASSWORD=mysql \-e MYSQL_ROOT_PASSWORD=root \-v $PWD/mysql:/var/lib/mysql \-d mysql:5.6

如何容器启动不起来,可以进入容器查看原因

docker run -it --rm fd560f53e0bf /bin/sh

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。