精华内容
下载资源
问答
  • 使用 Kubernetes 和 Tomcat 实现 Web 应用的容器化部署
  • 主要介绍了详解angular应用容器化部署,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • FastDFS分布式文件系统单机容器化部署,集群容器化部署 使用方法见:https://blog.csdn.net/pcn01/article/details/104464689
  • kolla容器化部署openstack ocata,
  • Java容器化部署架构方案.pptx
  • 主要介绍了Django Docker容器化部署之Django-Docker本地部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 企业级应用容器化部署实践.docx
  • 主要介绍了Docker容器化部署尝试——多容器通信(node+mongoDB+nginx),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 彻底解决容器化部署ftp

    千次阅读 2020-06-06 08:32:36
    网上有不少ftp容器化部署教程,但涉及场景都很简单,大多是本地容器化部署。本文亲自示范各种docker 和 kubernetes下容器化ftp服务的方式。针对遇到的访问远程ftp server问题进行记录

    背景

    我们的项目要接管各种容器化中间件服务,之前容器化sftp相当顺利,在dockerhub上找了一个most popular image 通过kubernetes deployment 一部署分分钟搞定。这次部署ftp本以为更加简单,结果遇到一些坑,费了些劲。在此记录一下。

    ftp核心要点

    磨刀不误砍柴工,用好一个中间件,或者我们这里容器化之前需要先对它有个大致的了解,不然不同的搜索答案然后尝试,盲人摸象,反而浪费时间,也不利于自己的进步。

    FTP是基于TCP协议的服务,而在FTP服务器和客户端建立连接时,有两种模式主动模式(Active)和被动模式(Passive)。
    通过以下两张图就可以了解ftp两种模式的工作流程
    在这里插入图片描述
    在这里插入图片描述

    容器化部署

    镜像相关信息及获取方式参见dockerhub
    这里我对该镜像稍微进行了改动,主要在ftp配置文件中增加了以下配置,关于配置的解释我已经加到注释中,因为涉及安全问题,请根据自己情况评估

    #If the pasv_promiscuous is off (the default), the vsftpd server checks that the client (IP address), which is connecting to the transfer port is the same, as the client connected to the FTP control connection (which requested the transfer).
    
    #When the pasv_promiscuous is on, no check is done. So if a potential attacker guesses the random port number (which may not be random, but incremental, hence easy to guess), he/she can connect to the transfer port before a legitimate client does and steal the data (in case of a download) or sneak in his/her own data (in case of an upload).
    pasv_promiscuous=YES
    

    以上配置主要是避免一些安全检测使连接失败的问题,比如如下提示

    425 Security: Bad IP connecting
    

    需要镜像及改动后的镜像请留言

    docker

    docker run -d -v /my/data/directory:/home/vsftpd \
    -p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
    -e FTP_USER=myuser -e FTP_PASS=mypass \
    -e PASV_ADDRESS=127.0.0.1 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
    --name vsftpd --restart=always fauria/vsftpd
    

    在本地运行以上命令可以快速启动ftp服务,注意修改一下本地的挂载目录,另外环境变量PASV_ADDRESS如果是在本地无需修改,如果部署在其他服务器或者暴露在公网,要修改为对应的host ip 或 公网ip
    有些文章中说需要进入到容器容器去修改或者增加一些用户信息,其实这里通过环境变量就已经搞定。docker部署方式相对简单很多。

    kubernetes

    今天主要遇到的问题就是我们是基于阿里云的kubernetes服务来部署的,service服务暴露是基于阿里云的负载均衡方式实现。

    先说一下最终实现方案:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-ftp
      namespace: default
    spec:
      progressDeadlineSeconds: 600
      replicas: 1
      selector:
        matchLabels:
          app: my-ftp
      strategy:
        rollingUpdate:
          maxSurge: 25%
          maxUnavailable: 25%
        type: RollingUpdate
      template:
        metadata:
          labels:
            app: my-ftp
        spec:
          containers:
            - env:
                - name: FTP_USER
                  value: myuser
                - name: FTP_PASS
                  value: mypass
                - name: PASV_MIN_PORT
                  value: '10022'
                - name: PASV_MAX_PORT
                  value: '10022'
                - name: PASV_ADDRESS
                  value: xx.xx.xx.xx #service对外暴露公网ip
              image: 'ftp:fauria'
              name: my-ftp-container
              ports:
                - containerPort: 10022
                  protocol: TCP
                - containerPort: 21
                  protocol: TCP
                - containerPort: 20
                  protocol: TCP
              resources: {}
              terminationMessagePath: /dev/termination-log
              terminationMessagePolicy: File
          dnsPolicy: ClusterFirst
          restartPolicy: Always
          schedulerName: default-scheduler
          securityContext: {}
          terminationGracePeriodSeconds: 30
          
          ---------------------------------------------------------------
          
    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: slb.s1.small
      name: my-ftp
      namespace: default
    spec:
      clusterIP: 172.21.10.21
      externalTrafficPolicy: Local
      healthCheckNodePort: 31017
      ports:
        - name: my-ftp-10020-20
          nodePort: 30534
          port: 10020
          protocol: TCP
          targetPort: 20
        - name: my-ftp-10021-21
          nodePort: 31368
          port: 10021
          protocol: TCP
          targetPort: 21
        - name: my-ftp-10022-10022
          nodePort: 32329
          port: 10022
          protocol: TCP
          targetPort: 10022
      selector:
        app: my-ftp
      type: LoadBalancer
    status:
      loadBalancer:
        ingress:
          - ip: xx.xx.xx.xx #service对外暴露公网ip
    
    

    几点说明:

    • 部署时delolyment中指定的环境变量 PASV_ADDRESS为service部署后分配的公网ip。
    • 我在部署的时候选择的被动模式数据发送端口 最大值和 最小值一致,这样只会使用一个端口来进行数据传输,也即1022端口,因为我在测试阶段只有一个客户端去链接
    • service的暴露方式这里使用的是阿里云的slb方式,外部流程策略使用的是 local类型

    验证

    我通过安装ftp命令行工具测试通过了,主要的测试命令如下

    #登录
    [root@6606edeb65ae /]# ftp xx.xx.124.xx 10021
    Connected to xx.xx.124.xx (xx.xx.124.xx).
    220 (vsFTPd 3.0.2)
    Name (xx.xx.124.xx:root): myuser
    331 Please specify the password.
    Password:
    230 Login successful.
    
    #send deirectory
    ftp> dir
    227 Entering Passive Mode (xx,xx,124,xx,39,38).
    150 Here comes the directory listing.
    226 Directory send OK.
    
    
    #传输文件
    ftp> put /tmp/ks-script-56tHfe text
    local: /tmp/ks-script-56tHfe remote: text
    227 Entering Passive Mode (47,99,124,169,39,38).
    150 Ok to send data.
    226 Transfer complete.
    836 bytes sent in 0.00138 secs (604.05 Kbytes/sec)
    

    说以下遇到的一个坑,在使用客户端FileZilla 以及mac 自带的客户端(command+k可以快速打开)连接ftp server时,出现了各种问题。本地docker部署的方式使用以上两个工具连接没有问题。但连接到阿里云上kubernetes的ftp时出现各种问题:

    状态: 	已登录
    状态: 	读取目录列表...
    命令: 	PWD
    响应: 	257 "/"
    命令: 	TYPE I
    响应: 	200 Switching to Binary mode.
    命令: 	PASV
    响应: 	227 Entering Passive Mode (XX,XX,XX,XX,39,38).
    命令: 	LIST
    错误: 	无法建立数据连接: ECONNREFUSED - 连接被服务器拒绝
    响应: 	150 Here comes the directory listing.
    响应: 	426 Failure writing network stream.
    错误: 	读取目录列表失败
    

    包括我在stackoverflow看到一个哥们在aws云上貌似也遇到了同样的问题,但并没有有效回答,有时候工具也挺坑的。包括网上有人建议进行如下设置,我觉得这些并不可取
    在这里插入图片描述

    写在最后
    我司多年专注各种服务器代理:
    1 来自于阿里、腾讯等大厂开发人员免费答疑,针对您的使用场景规划最合理产品方案和架构,最大限度节约成本。
    2.各类云服务器全网超低价。 联想、华为、阿里、腾讯等厂商指定合作代理公司,购买有保障。
    以远低于原厂的价格享受原厂的服务!

    展开全文
  • gitlab 容器化部署

    千次阅读 2018-07-12 16:40:12
    gitlab 容器化部署 1. docker pull 对应的版本的容器 https://hub.docker.com/r/gitlab/gitlab-ce/ 通过Dockerfile 查看需要挂载的文件目录有 /etc/gitlab 配置文件 /var/log/gitlab 日志 /var/opt/gitlab...

    gitlab 容器化部署

    1. docker pull 对应的版本的容器
    

    https://hub.docker.com/r/gitlab/gitlab-ce/

     通过Dockerfile 查看需要挂载的文件目录有
     /etc/gitlab   配置文件 
     /var/log/gitlab   日志
     /var/opt/gitlab   数据文件
    
    2. 使用容器启动 
      docker run -d \
       -p 80:80 \
       -p 443:443 \
       -p 22:22 \
       --name gitlab \
       --restart unless-stopped \
       -v /data/gitlab/config:/etc/gitlab \
       -v /data/gitlab/logs:/var/log/gitlab \
       -v /data/gitlab/data:/var/opt/gitlab \
       gitlab/gitlab-ce:10.7.3-ce
    
    3. 配置https 
       external_url 'https://gitlab.xxx.com'
    
       nginx['redirect_http_to_https'] = true
       nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
       nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"   
    
    4. 配置Ldap  
       gitlab_rails['ldap_enabled'] = true
    
        ###! **remember to close this block with 'EOS' below**
        gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
        main:
         label: 'LDAP'
         host: 'xxxxxxxxxxxx'
         port: 389
         uid: 'uid'
         bind_dn: 'uid=xxxxx,cn=xxxx,dc=xxx,dc=xxx'
         password: 'xxxxx'
         encryption: 'plain'
         verify_certificates: false
         active_directory: true
         base: 'DC=xxxx,DC=xxxxx’
         admin_group: 'Global Admins‘
         EOS     
    
    5. 配置邮件
         gitlab_rails['smtp_enable'] = true
         gitlab_rails['smtp_address'] = ""
         gitlab_rails['smtp_port'] = 25
         gitlab_rails['smtp_user_name'] = ""
         gitlab_rails['smtp_password'] = ""
         gitlab_rails['smtp_domain'] = ""
         gitlab_rails['smtp_authentication'] = false
         gitlab_rails['smtp_enable_starttls_auto'] = true
         gitlab_rails['smtp_tls'] = false      
    
    
        gitlab_rails['gitlab_email_enabled'] = true
        gitlab_rails['gitlab_email_from'] = 'notify@ennew.cn'
        gitlab_rails['gitlab_email_display_name'] = 'Gitlab '    
    
    6. 重新加载配置
       gitlab-ctl reconfigure  使配置文件生效
    
    7. 备份
    
       docker exec gitlab gitlab-rake gitlab:backup:create   
    
    8. gitlab 权限管理
       Guest  可以创建issue 发表评论  不能读写版本库
       Reporter 可以克隆代码  不能提交  QA ,PM可以赋予这个权限
       Developer 可以克隆代码、 开发 提交  push,RD 可以赋予这个权限
       Master   可以创建项目  添加tag  保护分支   添加项目成员  编辑项目,核心RD负责人可以赋予这个权限
       owner  可以设置项目访问权限,删除项目 迁移项目  管理组成员   开发组leader 可以赋予这个权限 
    

    gitlab 开启hooks

      需要设置 "allow_local_requests_from_hooks_and_services":true,  
    
      curl -X GET --header "PRIVATE-TOKEN: xxxxxxxx" 'http://10.39.15.24/api/v4/application/settings?'
    
      curl -X PUT  --header "PRIVATE-TOKEN: DWpr1Q2dsJzQZmjDXMny" 'https://gitlab.enncloud.cn/api/v4/application/settings?allow_local_requests_from_hooks_and_services=true' | grep allow
    
    展开全文
  • 感谢杜赛大佬用爱发电,本渣渣只是一个...Django-Docker容器化部署-杜赛博客,这是教你手把手部署 Docker + Django + MySQL + Nginx + Gunicorn 的傻瓜式教程,目的是让 Docker 菜鸟也能快速部署容器化的 Django 应用。
  • ocp上的redis redis cluster容器化部署
  • 项目docker容器化部署步骤

    千次阅读 2017-05-27 14:50:46
    Docker在部署时的一些基本步骤(主要针对我公司的项目环境): 1.项目中存在不需要使用容器化的服务,所以请安装jdk7、redis、mq、zookeeper、dubbo控制台 ...以下是时代智囊在容器化部署中的一些批处理

    Docker在部署时的一些基本步骤(主要针对我公司的项目环境):

    1.项目中存在不需要使用容器化的服务,所以请安装jdk7、redis、mq、zookeeper、dubbo控制台

    2.镜像导入

    #cat sdzn_docker_tomcat.tar|docker import - sdzn.com/tomcat:0.1

    3.编写项目中的服务脚本:

    以下是时代智囊在容器化部署中的一些批处理命令:
    【1】sdznhelp:容器化部署的基础命令帮助信息
    【2】sdznreplace:项目在编译上传后,将根据服务器环境替换所有配置文件
    【3】sdznrestart:此命令用于重启所有已有的容器
    【4】sdznreboot:关机重启,会启动系统所有需要执行的服务
    【5】docker restart base_user:重启base_user项目容器
    【6】docker run -i -t -v /root/tomcat/webapps/ROOT1/:/opt/tomcat/webapps/ROOT1/  --privileged=true -d -p 58080:8080 --name tomcat1 sdzn.com/tomcat:0.1 /root/run.sh:创建一个新的容器,请根据自身需要进行命令修正。
    【7】sdznbuild:此命令慎用,在新的安装了docker环境的情况下根据基础镜像生成各项目的容器
    如果因为项目要对容器进行更改,请修改sdznbuild文件和sdznrestart文件对应部分
    上传新项目:需要增加【2】、【3】、【4】、【7】的内容。
    更新项目:需要执行【2】和【5/3】命令。
    将1/2/3/4/7脚本放入/usr/bin目录中,方便随处调用
    4.拷贝配置文件到宿主主机上,拷贝项目到宿主主机上

    5.运行sdznreplace将需要挂载到容器上的各项目配置文件进行覆盖

    6.运行sdznbuild生成各项目容器,容器名为各项目名称;

    7.测试sdznrestart和sdznreboot是否有用。

    展开全文
  • 项目的容器化部署

    2019-09-24 01:31:01
    项目的容器化部署 cd tomcat/ cd ROOT/ ll cp shop.zip ROOT/ cd /usr/local/docker/tomcat/ROOT/ ll unzip shop.zip 修改数据源 cd ROOT/ cd WEB-INF/ ll cd classes/ ll vi shop.properties jdbc.connectionURL=...

    项目的容器化部署

    cd tomcat/
    cd ROOT/
    ll
    cp shop.zip ROOT/
    cd /usr/local/docker/tomcat/ROOT/
    ll
    unzip shop.zip

    修改数据源

    cd ROOT/
    cd WEB-INF/
    ll
    cd classes/
    ll
    vi shop.properties
    jdbc.connectionURL=jdbc:mysql://192.168...
    :wq!

    启动一个名字叫shop的容器

    docker run -p 8080:8080 --name shop -v /usr/local/docker/tomcat/ROOT/:/usr/local/tomcat/webapps/ROOT -d tomcat
    docker ps

    浏览器访问

    ip:8080

    查看tomcat容器的日志

    docker logs -f shop

    转载于:https://www.cnblogs.com/cgy-home/p/11209861.html

    展开全文
  • 容器化部署之看板工具: Wekan

    千次阅读 2020-08-10 23:20:32
    2016年确认过开源看板工具Wekan,当时的使用还非常困难,连部署使用都有不少问题,最近重新确认发现已经得到不少不错的改善,从部署到使用都相对较为流畅,github的star也已经超过1.6万+,这篇文章以容器化部署方式...
  • JVM虚拟 重新定义Java容器部署的资源管理机制 陆传胜 2009~2015 IBM Java Technology Center 2015~ now 阿里巴巴基础架构 事业群JVM组 chuansheng.lcs@alibaba- 双十一就要到了 您准备好了吗 如果Java应用突然就...
  • 容器化部署 Wordpress 的一个坑 问题描述 非容器化 nginx + docker-compose 容器化 wordpress 后,媒体库上传图片报错:HTTP 错误 问题解决 其实这个问题的原因非常多,网上文章一大堆...
  • eidaws-federator容器化部署 该存储库包含用于使用容器引擎(例如或启动的代码。 入门 首先,请参阅文档。 问题 请在报告错误,问题,功能要求等。 执照 根据许可。 有关更多信息,请参见文件。 会费 捐款很受欢迎。...
  • 基于minio存储,容器化部署高可用docker-registry minio部署 根据部署方式不同,支持几种方式,二进制文件部署,docker容器部署,kubenetes集群部署 根据集群规划,可以分为单节点,分布式 本文档主要介绍后两种部署...
  • SpringCloud Alibaba微服务实战十五 - SpringCloud 容器化部署
  • python3容器化部署方案

    2019-04-22 15:21:19
    k8s部署方案 来自python 这个方案已经落地了k8s部署方案 来自python 这个方案已经落地了
  • 文章目录一、前言二、Minio三、k8s容器化部署 一、前言 分布式文件存储系统,作为一个码农,多多少少会听说大名鼎鼎 hadoop 的文件系统 HDFS 和 FastDFS。这个两个在文件存储各有优劣,但是对于现在流行的k8s容器化...
  • 目标:基于Docker进行Spring Cloud基础服务组件的容器化部署环境:CentOS 7.2操作系统 基础服务:Eureka服务注册中心+Config服务配置中心 其他:Zuul服务网关+Zipkin服务追踪中心+RabbitMQ消息队列服务+Elastic...
  • 在网上找了下,国内没有多少介绍haproxy的,好像都是nginx多一些,但是在大多数容器化部署的今天,人们好像总是要使用docker去部署一下子,折腾半天,记录一下(此篇主要讲用docker部署haproxy,主要功能有端口转发...
  • Openstack容器化部署实现及参考

    千次阅读 2017-04-02 20:52:17
    1、容器化Openstack  在对Openstack进行升级或降级时,通常有两种方式可供选择,即基于...容器化Openstack的管理方案解决了当前主流Openstack部署系统中最两人头疼的Openstack可用性和管理维护难题。 2、问题
  • SpringBoot从入门到精通教程(九)- Docker集成+容器化部署详解/上篇 基本用法:使用Maven插件构建Docker镜像,然后可以结合Jenkins一起使用(Jenkins教程)
  • 文章目录一、部署环境信息二、docker部署grafana服务2.1、grafana镜像下载2.2、创建数据目录及配置文件目录2.3、拷贝grafana配置文件2.4、启动grafana容器2.5、检查grafana状态2.6、grafana配置域名反向代理2.7、...
  • PostgreSQL的集群化和容器化部署

    千次阅读 2019-02-13 12:22:00
    传统数据库服务器不仅向多节点集群方案发展,还向容器化和Kubernetes集群部署模式演进,就连Oracle都已经推出容器部署的方案,而新出现的NoSQL/NewSQL数据库(如MongDB/Redis等等)更是从一开始就把多节点集群、容器...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 224,953
精华内容 89,981
关键字:

容器化部署