首页 文章 精选 留言 我的

精选列表

搜索[swarm],共980篇文章
优秀的个人博客,低调大师

docker-swarm容器固定到node节点启动

Docker-compose的编排 首先这里需要创建一个目录mkdir /docker-compose然后在里边创建一个docker-compose.yml的文件。 具体包括: Images、hostname、ports、networks、volumes、deploy这些内容 其中包括nginx+tomcat1+tomcat2三个服务 version: "3" 这是最新的版本 services: nginx: image: nginx5:latest hostname: nginx ports: - "8021:80" networks: - "mynet" volumes: - "/srv/jetsen/nginx:/nginx" - "nginx://usr/local/nginx-1.6.2" deploy: placement: constraints: - engin.labels.function ==nodeone tomcat1: image: tomcat15:latest hostname: tomcat1 ports: - "8088:8080" networks: - "mynet" volumes: - "/srv/jetsen/tomcat1:/tomcat1" - "tomcat1jdk:/usr/local/jdk1.7.0_79" - "tomcat1tomcat://usr/local/apache-tomcat-7.0.61/" deploy: placement: constraints: - engine.labels.function == nodeone tomcat2: image: tomcat15:latest hostname: tomcat2 ports: - "8089:8080" networks: - "mynet" volumes: - "/srv/jetsen/tomcat2:/tomcat2" - "tomcat2jdk:/usr/local/jdk1.7.0_79" - "tomcat2tomcat://usr/local/apache-tomcat-7.0.61/" deploy: placement: constraints: - engine.labels.function == nodetwo volumes: nginx: tomcat1tomcat: tomcat1jdk: tomcat2tomcat: tomcat2jdk: networks: mynet: external: true 另外需要修改docker的主配置文件 --label=function=nodeone: 一个标签【别名】 --label=host=node1 : 主机名 --registry-mirror=http://e0d76b42.m.daocloud.io:国内的镜像 注:另外node2的服务器节点也需要修改 完成之后通过dockerstackdeploy-cdocker-compose.yml 【mynet:名字】 启动这个docker-compose编排文件 查看dockerservicelist 查看运行的节点 Nginx+tomcat1+tomcat2反向代理docker 实现上面的三个容器运行必须要有三个dockerfile写出来的启动镜像 Nginx: 这里使用的是nginx1.6.2版本 ENTRYPOINT /usr/local/nginx/sbin/nginx && tail -F /usr/local/nginx/logs/access.log FROM docker.io/centos:7.2.1511 MAINTAINER LXF RUN yum -y install gcc gcc-c++ kernel-headers dracut make auotmake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel ADD ./nginx-1.6.2 /usr/local/nginx-1.6.2 RUN cd /usr/local/nginx-1.6.2 && ./configure --prefix=/usr/local/nginx --with-http_stub_status_module && make &&make install EXPOSE 80 ENTRYPOINT /usr/local/nginx/sbin/nginx && tail -F /usr/local/nginx/logs/access.log Tomcat1的镜像: Tomcat使用的是7版本 FROM docker.io/centos:7.2.1511 MAINTAINER LXF RUN yum -y install gcc gcc- c++ make glibc kernel-headers tar glibc-common ADD ./apache-tomcat-7.0.61 /usr/local/apache-tomcat-7.0.61 ADD ./jdk1.7.0_79 /usr/local/jdk1.7.0_79 ENV JAVA_HOME=/usr/local/jdk1.7.0_79 ENV PATH=$JAVA_HOME/bin:$PATH FROM docker.io/centos:7.2.1511 MAINTAINER LXF RUN yum -y install gcc gcc- c++ make glibc kernel-headers tar glibc-common ADD ./apache-tomcat-7.0.61 /usr/local/apache-tomcat-7.0.61 ADD ./jdk1.7.0_79 /usr/local/jdk1.7.0_79 ENV JAVA_HOME=/usr/local/jdk1.7.0_79 ENV PATH=$JAVA_HOME/bin:$PATH ENV CATALINA_HOME=/usr/local/apache-tomcat-7.0.61 ENV PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH ADD ./server.xml /usr/local/apache-tomcat-7.0.61/conf/server.xml RUN mkdir -p /web/webapp1 ADD index.jsp /web/webapp1/index.jsp RUN chmod +x /usr/local/apache-tomcat-7.0.61/bin/* EXPOSE 8080 ENTRYPOINT /usr/local/apache-tomcat-7.0.61/bin/startup.sh && tail -F /usr/local/apache-tomcat-7.0.61/logs/catalina.out ~ Tomcat2的镜像和tomcat1的没有区别就是在index.Jsp文件有区别 完成之后开始生产成镜像 通过dockerbuild-t镜像 /路径 aa是nginx的镜像 完成之后需要去编写docker-compose.yml文件 内容如下 version: "3" services: tomcat1: image: tomcat:1 hostname: tomcat1 expose: - 8080 networks: - "mynet" volumes: - "/srv/jetsen/tomcat1:/tomcat1" - "tomcat1jdk:/usr/local/jdk1.7.0_79" - "tomcat1tomcat://usr/local/apache-tomcat-7.0.61/" deploy: placement: constraints: - engine.labels.function == nodeone tomcat2: image: tomcat:2 hostname: tomcat2 expose: - 8080 networks: - "mynet" volumes: - "/srv/jetsen/tomcat2:/tomcat2" - "tomcat2jdk:/usr/local/jdk1.7.0_79" - "tomcat2tomcat://usr/local/apache-tomcat-7.0.61/" deploy: placement: constraints: - engine.labels.function == nodetwo nginx: image: aa:aa hostname: nginx ports: - "8021:80" networks: - "mynet" volumes: - "/srv/jetsen/nginx:/nginx" - "nginx1:/usr/local/nginx-1.6.2" - "nginx2://usr/local/nginx" deploy: placement: constraints: - engine.labels.function == nodeone volumes: nginx: nginx1: nginx2: tomcat1tomcat: tomcat1jdk: tomcat2tomcat: tomcat2jdk: networks: mynet: external: true 注:卷组一定要在最后标注,另外加红颜色的路径要创建才行 加绿色的表示申明的作用使用的卷组和网络 完成之后需要启动这个docker-compose文件 自己定义名字 当然删除的命令是 看一下起来的容器 前面说过tomcat2在woeker节点上工作 启动三个容器之后进行反向代理的配置 需要在nginx的主配置文件配置upstream,可以去卷组里面配置 手动添加 添加在卷组当中会自动和容器的数据同步,防止容器挂掉数据丢失 完成之后需要测试一下 反向代理测试: 注:如果有业务需要需要将docker-compose文件单独分开那么需要编写单独的文件,比如讲上面的分为三分,每一份都需要申明网络和卷组。当然使用同一个网络mynet的话,启动的容器之间还是可以互相同信得

优秀的个人博客,低调大师

portainer,用于管理docker swarm,好像也不错哟

shipyard的模式,好像在docker 1.12之后,没有啥用武之地了,也没有更新。 接下来,集群管理和调度,最有知名度的就是rancher了。 在rancher之前,我们试一下portainer吧。。超简单方便哟。 万一rancher不行,这个也可以上哈。 安装命令: docker service create \ > --name portainer \ > --publish 9000:9000 \ > --constraint 'node.role == manager' \ > --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \ > portainer/portainer \ > -H unix:///var/run/docker.sock

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册