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

广东智能网站建设质量保障郑州加盟做网站

广东智能网站建设质量保障,郑州加盟做网站,卧龙区建网站,wordpress怎么做301【Docker】Docker学习⑨ - 单机编排之Docker Compose 一、Docker简介二、Docker安装及基础命令介绍三、Docker镜像管理四、Docker镜像与制作五、Docker数据管理六、网络部分七、Docker仓库之单机Dokcer Registry八、Docker仓库之分布式Harbor九、单机编排之Docker Compose1 基础… 【Docker】Docker学习⑨ - 单机编排之Docker Compose 一、Docker简介二、Docker安装及基础命令介绍三、Docker镜像管理四、Docker镜像与制作五、Docker数据管理六、网络部分七、Docker仓库之单机Dokcer Registry八、Docker仓库之分布式Harbor九、单机编排之Docker Compose1 基础环境准备2 从docker compose启动单个容器3 从docker compose启动多个容器4 定义数据卷挂载5 实现单机版的HANGINXTOMCAT5.1 制作haproxy镜像5.2 准备nginx镜像5.3 准备tomcat镜像5.4 编辑docker compose 文件及环境准备5.5 启动容器 一、Docker简介 参考【Docker】Dokcer学习① - 简介 二、Docker安装及基础命令介绍 参考【Docker】Docker学习② - Docker安装及基础命令介绍 三、Docker镜像管理 参考【Docker】Docker学习③ - Docker镜像管理 四、Docker镜像与制作 参考【Docker】Docker学习④ - Docker镜像与制作 五、Docker数据管理 参考【Docker】Docker学习⑤ - Docker数据管理 六、网络部分 参考【Docker】Docker学习⑥ - 网络部分 七、Docker仓库之单机Dokcer Registry 参考【Docker】Docker学习⑦ - Docker仓库之单机Dokcer Registry 八、Docker仓库之分布式Harbor 参考【Docker】Docker学习⑧ - Docker仓库之分布式Harbor 九、单机编排之Docker Compose 当在宿主机启动较多的容器的时候如果都是手动操作会觉得比较麻烦而且容易出错这个时候推荐使用docker单机编排工具docker composeDokcer Compose是docker容器的一种编排服务docker compose是一个管理多个容器的工具比如可以解决容器之间的依赖关系就像启动一个web就必须得先把数据库服务先启动一样docker compose完全可以替代docker run启动容器。 github地址https://github.com/docker/compose 1 基础环境准备 1.1 安装python环境及pip命令 yum install https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm -yyum install python-pip -ypip install --upgrade pip 1.2 安装docker compose pip install docker-compose1.3 验证版本 docker-compose version日志 [rootgbase8c_private ~]# docker-compose version/usr/lib/python2.7/site-packages/paramiko/transport.py:33: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in the next release.from cryptography.hazmat.backends import default_backenddocker-compose version 1.26.2, build unknowndocker-py version: 4.4.4CPython version: 2.7.5OpenSSL version: OpenSSL 1.0.2k-fips 26 Jan 20171.4 查看帮助 docker-compose --help[rootgbase8c_private ~]# docker-compose --help/usr/lib/python2.7/site-packages/paramiko/transport.py:33: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in the next release.from cryptography.hazmat.backends import default_backendDefine and run multi-container applications with Docker.Usage:docker-compose [-f arg...] [options] [COMMAND] [ARGS...]docker-compose -h|--helpOptions:-f, --file FILE Specify an alternate compose file(default: docker-compose.yml)-p, --project-name NAME Specify an alternate project name(default: directory name)-c, --context NAME Specify a context name--verbose Show more output--log-level LEVEL Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)--no-ansi Do not print ANSI control characters-v, --version Print version and exit-H, --host HOST Daemon socket to connect to--tls Use TLS; implied by --tlsverify--tlscacert CA_PATH Trust certs signed only by this CA--tlscert CLIENT_CERT_PATH Path to TLS certificate file--tlskey TLS_KEY_PATH Path to TLS key file--tlsverify Use TLS and verify the remote--skip-hostname-check Dont check the daemons hostname against thename specified in the client certificate--project-directory PATH Specify an alternate working directory(default: the path of the Compose file)--compatibility If set, Compose will attempt to convert keysin v3 files to their non-Swarm equivalent--env-file PATH Specify an alternate environment fileCommands:build Build or rebuild servicesconfig Validate and view the Compose filecreate Create servicesdown Stop and remove containers, networks, images, and volumesevents Receive real time events from containersexec Execute a command in a running containerhelp Get help on a commandimages List imageskill Kill containerslogs View output from containerspause Pause servicesport Print the public port for a port bindingps List containerspull Pull service imagespush Push service imagesrestart Restart servicesrm Remove stopped containersrun Run a one-off commandscale Set number of containers for a servicestart Start servicesstop Stop servicestop Display the running processesunpause Unpause servicesup Create and start containersversion Show the Docker-Compose version information2 从docker compose启动单个容器 目录可以在任意目录推荐放在有意义的位置/usr/local/docker-compos 2.1 一个容器的docker compose文件 设置一个yml格式的配置文件因此要注意前后缩进 vim /usr/local/docker-compos/docker-compose.yml[rootgbase8c_private docker-compose]# cat docker-compose.yml web1:image: 192.168.56.199/nginx/nginx:v1expose:- 80- 443ports:- 80:80- 443:4432.2 启动容器 必须要在docker compose文件所在的目录执行 docker-compose up #前台启动[rootgbase8c_private docker-compose]# docker-compose up/usr/lib/python2.7/site-packages/paramiko/transport.py:33: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in the next release.from cryptography.hazmat.backends import default_backendCreating docker-compose_web1_1 ... doneAttaching to docker-compose_web1_1web1_1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configurationweb1_1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/web1_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.shweb1_1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.confweb1_1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.confweb1_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.shweb1_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.shweb1_1 | /docker-entrypoint.sh: Configuration complete; ready for start upweb1_1 | 2023/12/17 14:41:21 [notice] 1#1: using the epoll event methodweb1_1 | 2023/12/17 14:41:21 [notice] 1#1: nginx/1.21.5web1_1 | 2023/12/17 14:41:21 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6) web1_1 | 2023/12/17 14:41:21 [notice] 1#1: OS: Linux 3.10.0-1160.71.1.el7.x86_64web1_1 | 2023/12/17 14:41:21 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576web1_1 | 2023/12/17 14:41:21 [notice] 1#1: start worker processesweb1_1 | 2023/12/17 14:41:21 [notice] 1#1: start worker process 29web1_1 | 2023/12/17 14:41:21 [notice] 1#1: start worker process 30^CGracefully stopping... (press CtrlC again to force)Stopping docker-compose_web1_1 ... done2.3 web访问测试2.4 后台启动服务 容器在启动的时候会给容器自定义一个名称 docker-compose up -d日志 [rootgbase8c_private docker-compose]# docker-compose up -dStarting docker-compose_web1_1 ... done #容器名称2.5 自定义容器名称 [rootgbase8c_private docker-compose]# cat docker-compose.yml web1:image: 192.168.56.199/nginx/nginx:v1expose:- 80- 443container_name: nginx-web1 #自定义容器名称ports:- 80:80- 443:443日志 [rootgbase8c_private docker-compose]# docker-compose stopStopping docker-compose_web1_1 ... done[rootgbase8c_private docker-compose]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES72aed697d033 192.168.56.199/nginx/nginx:v1 /docker-entrypoint.… 9 minutes ago Exited (0) 13 seconds ago docker-compose_web1_1[rootgbase8c_private docker-compose]# docker-compose up -dRecreating docker-compose_web1_1 ... done[rootgbase8c_private docker-compose]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESf1033c073624 192.168.56.199/nginx/nginx:v1 /docker-entrypoint.… 2 seconds ago Up 2 seconds 0.0.0.0:80-80/tcp, 0.0.0.0:443-443/tcp nginx-web1[rootgbase8c_private docker-compose]# 3 从docker compose启动多个容器 3.1 编辑docker-compose文件 cat docker-compose.yml web1:image: 192.168.56.199/nginx/nginx:v1expose:- 80- 443container_name: nginx-web1 ports:- 80:80- 443:443 web2: #每个容器一个IDimage: 192.168.56.199/nginx/nginx:v1expose:- 80- 443container_name: nginx-web2 ports:- 81:80- 444:443日志 [rootgbase8c_private docker-compose]# docker-compose stopStopping nginx-web1 ... done[rootgbase8c_private docker-compose]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESf1033c073624 192.168.56.199/nginx/nginx:v1 /docker-entrypoint.… 5 minutes ago Exited (0) 6 seconds ago nginx-web1[rootgbase8c_private docker-compose]# docker-compose up -dStarting nginx-web1 ... doneCreating nginx-web2 ... done[rootgbase8c_private docker-compose]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES341ed2cbd17d 192.168.56.199/nginx/nginx:v1 /docker-entrypoint.… 51 seconds ago Up 50 seconds 0.0.0.0:81-80/tcp, 0.0.0.0:444-443/tcp nginx-web2f1033c073624 192.168.56.199/nginx/nginx:v1 /docker-entrypoint.… 6 minutes ago Up 50 seconds 0.0.0.0:80-80/tcp, 0.0.0.0:443-443/tcp nginx-web13.2 web访问测试 4 定义数据卷挂载 4.1 创建数据目录和文件 mkdir -p /data/nginx echo Test Nginx Volume /data/nginx/index.html4.2 编辑compose配置文件 cat docker-compose.yml web1:image: jack/nginx-1.22.1:v1expose:- 80- 443container_name: nginx-web1 volumes:- /data/nginx:/usr/local/nginx/htmlports:- 80:80- 443:443 web2: #每个容器一个IDimage: jack/nginx-1.22.1:v1expose:- 80- 443container_name: nginx-web2 ports:- 81:80- 444:4434.3 重启容器 docker-compose stop docker-compose up -d4.4 登录验证Web访问 4.5 其他常用命令 ##重启单个指定容器 docker-compose restart web1 ##重启所有容器 docker-compose restart ##停止和启动单个容器 docker-compose stop web1 docker-compose start web1 ##停止和启动所有容器 docker-compose stop docker-compose start5 实现单机版的HANGINXTOMCAT 5.1 制作haproxy镜像 5.1.1 编辑Dockerfile文件 cd /opt/dockerfile/web/haproxy cat Dockerfile #My Dockerfile From docker.io/centos:latest MAINTAINER chengk 123123.com#Yum Setting RUN rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm #以下为centos8需要 RUN sed -i -e s|mirrorlist|#mirrorlist|g /etc/yum.repos.d/CentOS-* RUN sed -i -e s|#baseurlhttp://mirror.centos.org|baseurlhttp://vault.centos.org|g /etc/yum.repos.d/CentOS-*RUN yum install gcc gcc-c pcre pcre-devel openssl openssl-devel make vim wget tree lrzsz automake zlib zlib-devel iproute net-tools iotop -y ADD haproxy-1.8.31.tar.gz /usr/local/src/ RUN cd /usr/local/src/haproxy-1.8.31 make TARGETlinux2628 USE_PCRE1 USE_OPENSSL1 USE_ZLIB1 PREFIX/usr/local/haproxy make install PREFIX/usr/local/haproxy RUN cp /usr/local/src/haproxy-1.8.31/examples/haproxy.init /etc/init.d/haproxy RUN cp /usr/local/src/haproxy-1.8.31/haproxy /usr/sbin/haproxy ADD haproxy.service /usr/lib/systemd/system/haproxy.service ADD haproxy /etc/sysconfig/haproxy ADD run_haproxy.sh /root/script/run_haproxy.sh ADD haproxy.cfg /etc/haproxy/haproxy.cfg RUN chmod ax /root/script/run_haproxy.shCMD [/root/script/run_haproxy.sh] EXPOSE 80 99995.1.2 准备服务启动脚本 cat haproxy.service [Unit] DescriptionHAProxy Load Balancer Aftersyslog.target network.target SourcePath/etc/init.d/haproxy [Service] EnvironmentFile/etc/sysconfig/haproxy ExecStart/etc/init.d/haproxy start ExecStop/etc/init.d/haproxy stop ExecReload/etc/init.d/haproxy reload[Install] WantedBymulti-user.target5.1.3 前台启动脚本 cat run_haproxy.sh #!/bin/bash /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid tail -f /etc/hosts5.1.4 haproxy参数文件 cat haproxy OPTIONS5.1.5 准备压缩包及其他文件 -rw-r--r-- 1 root root 858 1月 19 20:04 Dockerfile -rw-r--r-- 1 root root 301 1月 19 20:05 haproxy.service -rw-r--r-- 1 root root 94 1月 19 20:05 run_haproxy.sh -rw-r--r-- 1 root root 11 1月 19 20:05 haproxy -rw-r--r-- 1 root root 2523 1月 19 20:06 CentOS-Base.repo -rw-r--r-- 1 root root 951 1月 19 20:06 epel.repo -rw-r--r-- 1 root root 2219503 1月 19 20:07 haproxy-1.8.31.tar.gz5.1.6 执行构建镜像 docker build -t 192.168.56.199/centos/centos_haproxy_1.8.31 /opt/dockerfile/web/haproxy/ docker rm -f docker ps -a -q docker rmi 192.168.56.199/centos/centos_haproxy_1.8.31:v1 docker tag 192.168.56.199/centos/centos_haproxy_1.8.31:latest 192.168.56.199/centos/centos_haproxy_1.8.31:v15.2 准备nginx镜像 5.3 准备tomcat镜像 5.4 编辑docker compose 文件及环境准备 5.4.1 编辑docker compose文件 cat docker-compose.yml nginx-web1:image: jack/nginx-1.22.1:v1expose:- 80- 443container_name: nginx-web1 volumes:- /data/nginx:/usr/local/nginx/html- /usr/local/nginx/conf/nginx.conf:/usr/local/nginx/conf/nginx.conflinks:- tomcat-web1- tomcat-web2 nginx-web2: image: jack/nginx-1.22.1:v1expose:- 80- 443container_name: nginx-web2 volumes:- /usr/local/nginx/conf/nginx.conf:/usr/local/nginx/conf/nginx.conflinks:- tomcat-web1- tomcat-web2 tomcat-web1:container_name: tomcat-web1image: tomcat-web:app1user: rootcommand: /apps/tomcat/bin/run_tomcat.shvolumes: - /apps/tomcat/webapps/SalesManager:/apps/tomcat/webapps/SalesManagerexpose:- 8080- 8443 tomcat-web2:container_name: tomcat-web2image: tomcat-web:app1user: rootcommand: /apps/tomcat/bin/run_tomcat.shvolumes: - /apps/tomcat/webapps/SalesManager:/apps/tomcat/webapps/SalesManagerexpose:- 8080- 8443 haproxy-web1:container_name: haproxy-web1image: 192.168.56.199/centos/centos_haproxy_1.8.31:v1command: /root/script/run_haproxy.shvolumes:- /etc/haproxy/haproxy.cfg:/etc/haproxy/haproxy.cfgports:- 9999:9999- 80:80links:- nginx-web1- nginx-web25.4.2 准备nginx静态页面 cat /data/nginx/index.html Test Nginx Volme5.4.3 准备nginx 配置文件 #本地路径和nginx路径都是/usr/local/nginx/conf/nginx.conf grep -v # /usr/local/nginx/conf/nginx.conf user nginx; worker_processes auto; daemon off; events {worker_connections 1024; } http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;upstream tomcat_webserver{server tomcat-web1:8080;server tomcat-web2:8080;}server {listen 80;server_name localhost;location / {root html;index index.html index.htm;}location /SalesManager {proxy_pass http://tomcat_webserver;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Real-IP $remote_addr; }error_page 500 502 503 504 /50x.html;location /50x.html {root html;}} }5.4.4 准备tomcat页面文件 ll /apps/tomcat/webapps/SalesManager cat /apps/tomcat/webapps/SalesManager/showhost.jsp %page importjava.util.Enumeration% br / host:%try{out.println(java.net.InetAddress.getLocalHost().getHostName());}catch(Exception e){}% br / %request.getSession().setAttribute(t1,t2);% %Enumeration en request.getHeaderNames();while(en.hasMoreElements()){String hd en.nextElement().toString();out.println(hd:request.getHeader(hd));out.println(br /);}%5.5 启动容器 日志 [rootgbase8c_private docker-compose]# docker-compose up -d/usr/lib/python2.7/site-packages/paramiko/transport.py:33: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in the next release.from cryptography.hazmat.backends import default_backendCreating tomcat-web1 ... doneCreating tomcat-web2 ... doneCreating nginx-web2 ... doneCreating nginx-web1 ... doneCreating haproxy-web1 ... done[rootgbase8c_private docker-compose]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES679cadcf5244 192.168.56.199/centos/centos_haproxy_1.8.31:v1 /root/script/run_ha… 5 seconds ago Up 4 seconds 0.0.0.0:80-80/tcp, 0.0.0.0:9999-9999/tcp haproxy-web1d7bd6746c7ee jack/nginx-1.22.1:v1 nginx 6 seconds ago Up 4 seconds 80/tcp, 443/tcp nginx-web1fb3df1f58075 jack/nginx-1.22.1:v1 nginx 6 seconds ago Up 4 seconds 80/tcp, 443/tcp nginx-web2f0d87107431b tomcat-web:app1 /apps/tomcat/bin/ru… 7 seconds ago Up 5 seconds 8009/tcp, 8080/tcp, 8443/tcp tomcat-web26424d08ff212 tomcat-web:app1 /apps/tomcat/bin/ru… 7 seconds ago Up 5 seconds 8009/tcp, 8080/tcp, 8443/tcp tomcat-web1[rootgbase8c_private docker-compose]# docker-compose logs -f/usr/lib/python2.7/site-packages/paramiko/transport.py:33: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in the next release.from cryptography.hazmat.backends import default_backendAttaching to haproxy-web1, nginx-web1, nginx-web2, tomcat-web2, tomcat-web1tomcat-web1 | Tomcat started.tomcat-web1 | 127.0.0.1 localhosttomcat-web1 | ::1 localhost ip6-localhost ip6-loopbacktomcat-web1 | fe00::0 ip6-localnettomcat-web1 | ff00::0 ip6-mcastprefixtomcat-web1 | ff02::1 ip6-allnodestomcat-web1 | ff02::2 ip6-allrouterstomcat-web1 | 10.10.0.2 6424d08ff212tomcat-web1 | 1.1.1.1 abc.test.comhaproxy-web1 | 127.0.0.1 localhosthaproxy-web1 | ::1 localhost ip6-localhost ip6-loopbackhaproxy-web1 | fe00::0 ip6-localnethaproxy-web1 | ff00::0 ip6-mcastprefixtomcat-web2 | Tomcat started.haproxy-web1 | ff02::1 ip6-allnodeshaproxy-web1 | ff02::2 ip6-allrouterstomcat-web2 | 127.0.0.1 localhosthaproxy-web1 | 10.10.0.5 nginx-web1 d7bd6746c7eehaproxy-web1 | 10.10.0.4 nginx-web2 fb3df1f58075haproxy-web1 | 10.10.0.6 679cadcf5244tomcat-web2 | ::1 localhost ip6-localhost ip6-loopbacktomcat-web2 | fe00::0 ip6-localnettomcat-web2 | ff00::0 ip6-mcastprefixtomcat-web2 | ff02::1 ip6-allnodestomcat-web2 | ff02::2 ip6-allrouterstomcat-web2 | 10.10.0.3 f0d87107431btomcat-web2 | 1.1.1.1 abc.test.com
http://www.hkea.cn/news/14420691/

相关文章:

  • ps软件下载官方网站为什么想做网站运营
  • 旅游网站项目评估中文域名注册费用
  • 在线一键扒站源码php青岛房价
  • 惠州中小企业网站制作净化科技网站建设
  • 网站系统修改不了怎么回事中国建设网官网网站
  • 网站 定制徐州市城乡建设局网站6
  • 网站建设中图片是什么意思成安县城乡建设规划局网站
  • 建设旅游网站的好处网站推广计划包含的主要内容
  • 北京网站建站系统平台培训学校网站模板
  • 常州外贸网站建设公司网站建设 的公司
  • 外贸网站建设哪家实惠邗江区网站建设套餐
  • 学校网站建设成功大型电商网站开发价格
  • 蓝海国际版网站建设做天猫网站价格
  • 网站主机和空间建德营销型网站建设
  • 国内免费设计素材网站青海手机网站建设
  • 网站设计参考文献中小企业官网
  • 网站制作怎么办电子商务网站建设考卷
  • cms织梦织梦修改网站源码wordpress建站网页无法运
  • 网站copyright写法常州新北区建设局网站
  • 做商城网站还要服务器嘉兴做网站建设的公司哪家好
  • 婚恋网站制作wordpress addrewriterule
  • 手机访问跳转手机网站wordpress网页手机自适应
  • 建门户网站要多少钱建设部造价工程师考试网站
  • 郑州做网站狼牙电商网站会员体制怎么做
  • 南乐网站建设价格石家庄住房和城乡建设厅网站
  • 网站建设对客户的影响软件开发如何定价
  • 网站建设软件有哪些自适应网站做百度推广
  • 自适应网站功能免费微信点餐小程序
  • 北京网站开发团队知名seo电话
  • 国外优秀摄影作品网站天猫网页版