当前位置: 首页 > news >正文

儿童摄影网站怎么做中国最好的编程学校

儿童摄影网站怎么做,中国最好的编程学校,互动网络平台,佛山网站建设公司有哪文章目录 摘要一、环境准备1、docker安装2、docker-compose安装 二、镜像制作2.1、编写Dockerfile文件2.1.1、熟悉常用Dockerfile命令2.1.2、制作php镜像案例 2.2、build镜像 三、docker-compose管理容器3.1、编写docker-compose.ymal配置文件3.2、编写systemctl配置 摘要 由于… 文章目录 摘要一、环境准备1、docker安装2、docker-compose安装 二、镜像制作2.1、编写Dockerfile文件2.1.1、熟悉常用Dockerfile命令2.1.2、制作php镜像案例 2.2、build镜像 三、docker-compose管理容器3.1、编写docker-compose.ymal配置文件3.2、编写systemctl配置 摘要 由于项目服务器要从centos 6升级到centos 7但是在升级过程中发现web项目的php在加载自行编写的C扩展时运行在centos 7总是崩溃但是直接改C扩展预计要花比较长的时间可能会延误服务器升级遂计划基于centos 6将php构造成docker 镜像来运行。正所谓当翻越山峰耗时那么绕过去不失为一个办法最终目的都是抵达终点。 于是有了本篇文章从docker安装、镜像构建到docker-compose管理容器最后基于systemctl管理docker-compose异常重启。 一、环境准备 1、docker安装 1yum安装 yum install -y yum-utils vim // 安装基础工具yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo //添加软件源信息yum -y install docker-cesystemctl enable docker --now //启动docker并设置为开机自启 2二进制安装推荐更加灵活 下载安装 wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.21.tgz tar -zxvf docker-20.10.21.tgz mkdir -p /usr/local/docker-20.10.21 mv docker/* /usr/local/docker-20.10.21 创建软连接 ln -sv /usr/local/docker-20.10.21/* /usr/bin/创建docker组docker启动需要 groupadd -r dockersystemctl配置 [rootali ~]# cat /usr/lib/systemd/system/docker.service [Unit] DescriptionDocker Application Container Engine Documentationhttps://docs.docker.com Afternetwork-online.target firewalld.service Wantsnetwork-online.target[Service] Typenotify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart/usr/bin/dockerd --config-file/etc/docker/daemon.json ExecReload/bin/kill -s HUP $MAINPID # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILEinfinity LimitNPROCinfinity LimitCOREinfinity # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. #TasksMaxinfinity TimeoutStartSec0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegateyes # kill only the docker process, not all processes in the cgroup KillModeprocess # restart the docker process if it exits prematurely Restarton-failure RestartSec3s StartLimitBurst3 StartLimitInterval60s[Install] WantedBymulti-user.target docker配置 [rootali ~]# cat /etc/docker/daemon.json {data-root: /home/docker/data-root,pidfile: /home/docker/run/docker.pid,log-level: info,registry-mirrors: [http://hub-mirror.c.163.com,https://registry.docker-cn.com] #docker镜像源 }开机自启动 systemctl enable docker --now启动 systemctl restart dockerdocker配置相关 docker命令 2、docker-compose安装 docker-compose 是用于定义和运行多容器 Docker 应用程序的工具,通过一个配置文件来管理多个Docker容器在配置文件中所有的容器通过services来定义然后使用docker-compose脚本来启动停止和重启应用和应用中的服务以及所有依赖服务的容器非常适合组合使用多个容器进行开发的场景。这样就可以替代复杂的shell脚本来管理多个容器。 二进制文件获取 linux下载 curl -L https://github.com/docker/compose/releases/download/2.14.2/docker-compose-uname -s-uname -m -o /usr/bin/docker-compose 二、镜像制作 2.1、编写Dockerfile文件 指令说明 2.1.1、熟悉常用Dockerfile命令 FROM #基础镜像我们要制作的镜像常常是依赖某个基础镜像来实现的这些基础镜像常见的如centos,ubatu,alpine,harbox,debian等其中alpine很小安全。 这些镜像到docker官方仓库搜索即可选择相应的版本如FROM centos:6.6 。 COPY #从上下文目录中复制文件或者目录到容器里指定路径。如COPY ./package/usr/lib64/phpmath.so /usr/lib64/phpmath.so。 RUN #用于在基础镜像中执行后面跟着的命令行命令。如RUN mkdir -p /usr/local/php/ 。 CMD #类似于 RUN 指令用于运行程序但二者运行的时间点不同1CMD 在docker run 时运行2RUN 是在 docker build。如果有多条仅最后一条生效。该指令所启动的程序即容器的主进程其退出容器也会退出所以该指令的命令应当是常驻进程。 2.1.2、制作php镜像案例 FROM centos:6.6COPY ./package/usr/lib64/phpmath.so /usr/lib64/phpmath.so COPY ./package/usr/lib64/libserialize.so /usr/lib64/libserialize.so COPY ./package/usr/lib64/protocolbuffers.so /usr/lib64/protocolbuffers.so COPY ./package/usr/lib64/redis.so /usr/lib64/redis.so COPY ./package/usr/lib64/mysqli.so /usr/lib64/mysqli.soCOPY ./package/php5 /usr/local/ COPY ./dockerphp5/usr/local/php/etc/php-fpm.conf /usr/local/php/etc/php-fpm.confRUN mkdir -p /home/php/fpm/ #fpm 日志目录RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup COPY ./dockerphp5/etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo RUN yum clean all yum makecache RUN yum -y install vixie-cron RUN yum -y install crontabs#一些定时脚本 COPY ./dockerphp5/etc/crontab /etc/crontab RUN mkdir -p /etc/cron.minutely/ COPY ./dockerphp5/etc/cron.minutely/* /etc/cron.minutely/ RUN mkdir -p /etc/cron.hourly/ COPY ./dockerphp5/etc/cron.hourly/* /etc/cron.hourly/ RUN mkdir -p /etc/cron.daily/ COPY ./dockerphp5/etc/cron.daily/* /etc/cron.daily/EXPOSE 9000CMD [/usr/bin/phpfpmd.sh] #/usr/bin/phpfpmd.sh有多条命令仅最后一条是常驻的 [rootali ~]# cat /usr/bin/phpfpmd.sh #!bin/bash /etc/init.d/crond restart /usr/local/php/sbin/php-fpm -y /usr/local/php/etc/php-fpm.conf -g /usr/local/php/var/run/php-fpm.pid 2.2、build镜像 docker build -t php:5.4.7 -f ./dockerphp5/Dockerfile . #其中-t指定镜像名称和tag(版本)如果顺利执行完就可以看到镜像了 [rootali ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE php 5.4.7 360997ecc130 3 weeks ago 852MB centos 6.6 368c96d786ae 3 years ago 203MB 三、docker-compose管理容器 3.1、编写docker-compose.ymal配置文件 指令说明 version: 3 services:php5: image: php:5.4.7 #指定镜像ports:- 127.0.0.1:9000:9000volumes: #指定目录挂载- /usr/local/web:/usr/local/web #项目代码目录- /home/web:/home/web #项目日志等目录 - /etc/docker/cron.minutely:/etc/cron.minutely- /etc/docker/cron.hourly:/etc/cron.hourly- /etc/docker/cron.daily:/etc/cron.daily- /etc/localtime:/etc/localtime #时间与宿主机一致extra_hosts: #向容器/etc/hosts添加域名- redis.link.cn:200.200.172.106- mysql.link.cn:200.200.172.108container_name: phpfpmd #容器名称 此时可以通过/usr/bin/docker-compose -f /etc/docker/docker-compose.yml up 来启动容器了相比较docker run -itd -p 9000:9000 -v xxx:xxx --add-host xxx:xxx --name phpfpmd php:5.4.7 简洁多了特别是容器多的时候但是无法解决开机自启动没有看门狗的问题这个可以利用systemctl来解决 3.2、编写systemctl配置 指令说明 [Unit] Descriptionphp-fpm #Documentationnothing Afternetwork-online.target docker.service Wantsnetwork-online.target Requiresdocker.service [Service] #service type Typesimple #服务类型1simple默认值ExecStart字段启动的进程为主进程 2forkingExecStart字段将以fork()方式启动此时父进程将会退出子进程将成为主进程#3oneshot类似于simple但只执行一次Systemd 会等它执行完才启动其他服务 4dbus类似于simple但会等待 D-Bus 信号后启动#5notify类似于simple启动结束后会发出通知信号然后 Systemd 再启动其他服务fixme:这种需要启动程序实现sd_notify 6idle类似于simple但是要等到其他任务都执行完才会启动该服务。一种使用场合是为让该服务的输出不与其他服务的输出相混合# for php-fpm container control, ExecStart/usr/bin/docker-compose -f /etc/docker/docker-compose.yml up #ExecReload ExecStop/usr/bin/docker-compose -f /etc/docker/docker-compose.yml stop# kill only the docker process, only exec ExecStop KillModenone # softdog :restart the php-fpm process if it exit Restarton-failure #异常时会重启 RestartSec3s #每3s检查一次 StartLimitBurst3 StartLimitInterval60s [Install] WantedBymulti-user.target 编写完成放到/usr/lib/systemd/system/目录下即/usr/lib/systemd/system/phpfpmd.service 刷新 systemctl daemon-reload开启自启动 systemctl enable phpfpmd启动容器 systemctl restart phpfpmd至此一个完整的docker容器就完成了
http://www.tj-hxxt.cn/news/220271.html

相关文章:

  • 建设银行兴安支行网站求百度关键词搜索网站
  • 暗色系网站长春网站建设58同城
  • cms是网站吗logo设计报价明细表
  • 怎么上传视频到公司网站妻子2018高清免费视频
  • 苏州网站建设万户vps网站管理助手教程
  • 锡林浩特网站建设对门户网站建设的见解
  • 常见的网站首页布局有哪几种云南省城乡住房建设厅官方网站
  • 凡科怎样免费做网站做的网站怎么提交到百度上去
  • 学校网站建设配套制度网站建设横幅
  • 网站开发swf素材dedecms做网站和thinkphp
  • 做网站首页看不到图片威海优化推广
  • 为什么做免费视频网站水头哪里有做网站的
  • 公司网站怎么弄安徽专业网站建设检修
  • 中文域名.网站做商城网站都需要什么
  • 深圳品牌网站建设公司哪家好html网站后台模板
  • 肇庆网站建设黄埔商城网站建设
  • py网站开发视频教程做电影网站
  • 淄博做网站的公司有哪些公司官方网站建设需要多少钱
  • 招投标中网站建设评分标准免费的短视频推荐app
  • 手机网站页面模板如何给网站添加网站地图
  • 想做一个网站怎么做网站域名注册的相关证书证明文件
  • 常州金坛建设局网站教育网站制作下载
  • 网站集约化建设 技术济宁网站建设公司
  • 做网站合肥哪家公司好导师微信赚钱只投资10元
  • 百度网站建设哪家公司好做公司网站员工保险
  • 深圳公司网站建设设计企业建站的目的是什么
  • 官方网站建设意义网站建设竞标书
  • 怎么免费创建一个网站软件开发模型及特点
  • 云南省工程建设造价协会网站网站上传格式
  • 网站建设的一些背景图片ps做网站首页怎么