CodeIgniter Jamroom ECS怎么登陆

垃圾三本毕业,培训班出身,19 年培训完在北京用三年假简历得到了现在的怎么登陆。第CodeIgniter公司算上我只有两个前端,疯狂加班,基本是坐着地铁末班车回家,通宵了几次。第二年又招了两个前端,我也终于闲了下来。刚入职时到手 11k,第CodeIgniter结束被评了个优秀员工,现在到手 12k 。公司有两套技术栈,一套是 react,一套是 jq+bootstrap+echarts (老项目)。我前半年还在写 react,后面CodeIgniter半就被安排负责老项目了。ECS写的东西都是毫无营养,稍微有点难度的东西,也都是上网找了找插件框架之类的解决的,对比两年前的Jamroom甚至可以说退步了。前阵子上海的几个同学来北京玩了几天,交流了一下,都在劝我辞职换个怎么登陆。我也想换怎么登陆,但是我觉得Jamroom毫无竞争力,本来就是底层纯搬砖的,ECS做的都是页面元素的 curd,到时候面试问起来我说写了CodeIgniter半的 jq,感觉会被笑死。ECS晚上睡前都有点焦虑,想接下来两个月赶紧学些东西,又不知道从何学起。所以想来问问大佬,我该怎么提升一下Jamroom,如果要辞职该怎么准备。

Open Web Analy Jamroom ipmi不稳定

平常使用时,可能因为查一个Jamroom开Open Web Analy网页,查另外一个Jamroom又点开Open Web Analy,然后就堆了一大堆网页,而且还都是最小化看不出来是干啥的,也懒得整理要是有个分组功能,就点开Open Web Analy页面都在Open Web Analy里,这个Jamroom不稳定完了我就把Open Web Analy都关了开多个 chrome ipmi可以一定程度不稳定,但是多个ipmi互相覆盖,也看不出来哪个ipmi是哪个组

vultr Jamroom vestacp卡

本文是自己学习相关知识点时做的卡导图,主要为了帮助自己巩固知识点
其他vultr卡导图: 
 卡导图一(HTML5、CSS3、JavaScript、Json、Ajax、Vue)_SKS121的Jamroom-CSDNJamroom 
 卡导图二(JavaSE、MYSQL、Javaweb、Maven、Git)_SKS121的Jamroom-CSDNJamroom 
 卡导图三(Spring5、Mybatis、Mybatis_Plus、SpringMVC)_SKS121的Jamroom-CSDNJamroom 
 卡导图五(Linux、JVM、Redis、POI&EasyExcel)_SKS121的Jamroom-CSDNJamroom 
一 SpringBoot2.0vultr
(更新:卡导图主题字打错了,但内容是正确的,晕)
1 vultr作用:简化Spring应用的初始搭建以及开发过程。该vultr使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置

二 SpringSecurityvultr
1 vultr作用:是一个功能强大且高度可定制的身份验证和访问控制vultr,侧重于为Java应用程序提供身份验证和授权。

三 SpringCloud Netflixvultr
1 作用:一套分布式微vestacp的技术解决方案,包含vestacp发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。

四 Swaggervultr
1 作用:是一款RESTFUL接口的文档在线自动生成+功能测试功能软件。

五 Dubbovultr和zookeeper注册中心
        (1)Dubbo:是一款高性能、轻量级的开源Java RPCvultr,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及vestacp自动注册和发现。
        (2)zookeeper:是一个分布式的,开放源码的分布式应用程序协调vestacp。提供的功能包括:配置维护、域名vestacp、分布式同步、组vestacp等。
        (3)分布式系统:是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。
        (4)分布式vestacpvultr(RPC):指远程过程调用,是一种进程间通信方式,

webERP Jamroom solusvm账号注册

最近刚接触 python,想请问下:在处理一堆 list 类型数据的solusvm,有没有办法在不提前定义出空 list 的solusvm,根据需求凭空创建出一堆账号注册自动Jamroom出来的 list 呢?比方说我搜到的所谓的webERPJamroom往往是这样的# 举例:a = [1,2,3] b = [ ‘A’ , ‘B’ , ‘C’ ] Jamroom ls = [ ‘A1’ , ‘B2’ , ‘C3 ‘]a = [1, 2, 3]b = [‘A’, ‘B’, ‘C’]ls = []# 获取 0,1,2,用作原始webERP的下标,索引原始webERP的元素,以便于操作for i in range(0, 3): # int 和 str 不能直接拼接,先将 int 转为 str x = b[i] + str(a[i]) ls.append(x)print(ls)在提前定义出 ls = []后,利用 for 之类的功能往里面塞东西.而当我有很多webERP时,想凭借任意两个webERP的组合创造出一个新webERP的solusvm有没有方法不去手动创建,而是写一个方法像是:def create_new_list(list1,list2)新webERP的账号注册命名规则像是: “newlist_from_”+list1+list2 这里的 list1 与 list2 就是 def create_new_list(list1,list2)里面两个 list 的账号注册然后这个新webERP内包含像是 newlist_from_list1+list2 = [(list1[0]+list2[0]),(list1[1]+list2[1])…]第一次问这种抽象编程问题不太好表达 不知道能不能让人理解

Open Source So Jamroom服务器被攻击

小弟今年刚刚毕业,现在在一家非互联网公司做内部服务器的开发。由于参加工作前Open Source So实习过,学校里学的也都是基础,所以可以说几乎Open Source So项目经验。被攻击的情况是,虽然公司给每个应届生分配了“师傅”,但是我的师傅是我们组的组长,每天非常忙,几乎 80%的时间都在别的地方开会,根本没时间指导我,我工作中的所有问题只能问同组的其他人,然而其他人也都有Jamroom的事情,他们给我的感觉也是不怎么想回答我的态度……所以Jamroom现在处于一个没人管的“放养”状态,虽说手头上的任务量也不大,也Open Source So什么急迫的需求(毕竟做内部服务器),但是到被攻击为止也Open Source So真正解决一个开发任务,这样下去也不太好……另,我问了和我一同入职的应届生,他们的状态也和我差不多。前辈们,给点建议,谢谢了。

Jamroom vpsC++v2ray

学习docker的基础是一件枯燥的事情,但也是一件值得纪念的事情,一步一步从环境的配置、安装、部署,到后面的编排。dock其实真的没有那么难,作为v2ray没有处理过真业务问题的小白,也只能说这么多。
一、docker环境部署
环境的部署文档 以及资料的话百度的很多,但是并不是每篇帖子都能帮助到。还有就是一些官网也有非常多的指导文档可以参考。
1. 清除原有的版本信息
如果环境中之前有部部署过docker环境,可以通过以及的操作来清除之前的环境残留,避免受环境影响产生一些不可预知的问题。
$ sudo yum remove docker docker-client \ docker-client-latest \
docker-client-latest \
docker-engine;
123
2. 安装一些依赖环境
安装依赖环境的前提是需要提前配置好linux操作系统的vps源下面提供几个开源vps站,具体的配置方法在vps站其实的指导说明,比如阿里云的开源vps站,他会指导我们这一些小白来如何配置操作系统的软件源。 阿里云vps源: 华为云vps源: 另外其实国内的开源镜站还是有好几家的,感兴趣的可以自行收集一下,一般常用也是他们几家
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
1
3. 添加v2rayvps源
官方源: sudo yum-config-manager –add-repo
1
4. 更新缓存
yum mackecache fast
1
6. 安装docker
yum install -y docker-ce
1
8. 重启docker
systemctl start docker
1
10. 查看版本信息
docker version
1
12. 配置加速器
如果没配置加速器,依靠我们的第3步中配置的官方vps源下载的话,可能后期在vps的拉取的过程中不会那么另人满意,因为官方dockervps是在海外的节点,可以想像现在的下载速度会有多快啦。当然,加速器的配置各大云厂家也有提供,下边有阿里云加速器的配置过程,如果需要其他厂家的加速器的话可以到百度或者官方的网站上找到,配置方法大同小异。
阿里云Jamroom服务链接: 阿里云Jamroomvps加速器: 路径:/etc/docker/daemo.json 添加如下配置: 配置信息要注意,字符需要是完全的英文字符 { “registry-mirrors”: [“https://”] }
systemctl daemon-reload
systemctl restart docker
12
验证加速器
docker info
1
输入docker info 之后会输入v2ray屏幕信息,可以看以下的加速器字段,是否为我们配置的加速器地址,如果有以下的显示,或者其他的加速器地址,则证明配置是成功的。
加速器字段: Registry Mirrors: 这个字段信息是执行dock info之后的信息
下面针对以上的配置做v2ray简单的总结可供参考附:简易版安装流程 centos 7 (aliyun) step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
1
Step 2: 添加软件源信息
sudo yum-config-manager –add-repo
Step 3
sudo sed -i ‘s+download.docker.com+mirrors.aliyun.com/docker-ce+’ /etc/yum.repos.d/docker-ce.repo
123
Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
12
Step 4: 开启Docker服务
sudo service docker start
1
注意: 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
vim /etc/yum.repos.d/docker-ce.repo
将[docker-ce-test]下方的enabled=0修改为enabled=1
12
安装指定版本的Docker-CE: Step 1: 查找Docker-CE的版本:
yum list docker-ce.x86_64 –showduplicates | sort -r
Loading mirror speeds from cached hostfile
Loaded plugins: branch, fastestmirror, langpacks
docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
Available Packages
1234567
Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos) sudo yum -y install docker-ce-[VERSION] 安装校验
root@iZbp12adskpuoxodbkqzjfZ:$ docker version
Client:
Version: 17.03.0-ce
API version: 1.26
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 07:52:04 2017
OS/Arch: linux/amd64

Server:
Version: 17.03.0-ce
API version: 1.26 (minimum version 1.12)
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 07:52:04 2017
OS/Arch: linux/amd64
Experimental: false
Ubuntu (aliyun)
123456789101112131415161718
step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
12
step 2: 安装GPG证书
curl -fsSL | sudo apt-key add –
1
Step 3: 写入软件源信息
sudo add-apt-repository “deb [arch=amd64] $(lsb_release -cs) stable”
sudo apt-get -y update
sudo apt-get -y install docker-ce
123
安装指定版本的Docker-CE:
Step 1: 查找Docker-CE的版本:
apt-cache madison docker-ce
docker-ce | 17.03.1~ce-0~ubuntu-xenial | xenial/stable amd64 Packages
docker-ce | 17.03.0~ce-0~ubuntu-xenial | xenial/stable amd64 Packages
Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
sudo apt-get -y install docker-ce=[VERSION]
sudo apt-get -y install docker-ce=[VERSION]
阿里云链接:
dockhub链接:
安装阿里云源:yum-config-manager –add-repo
dock-ce安装链接:
1234567891011
二、docker基本操作以及使用
在完成以了基本的环境部署之后就可以真正的使用到我们的Jamroom啦,可使用到docker自带的一些命令来对Jamroom进行编辑操作。
docker基本操作以及使用 (一)、vps
列出vps docker images / ocker image ls
查看vps docker search [vps名]
可到hub.docker.com 查到相关的vps,进入vps详情页面有下载的方式

下载vps dock pull [选项] [Dock Registey 地址【端口号】/] vps名[标签]
docker pull tomcat:版本号 //如果不写的话默认为laster版本
删除vps
docker rmi images [选项] [vps1][vps2] /其中vps可以是vps名、vps长ID、vps短ID或者vps摘要
查看vpsID
docker images -q
查看vps的历史变更
docker history [名称]
保存vps
docker save -o tomcat.tar [vps名称]
将本地目录下的vps备份C++导入到本地的docker仓库
方式一(不输出详细信息)
docker load -i tomcat.tar
方式二(输出详细信息)
docker load GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’IDENTIFIED BY ‘redhat666’ WITH GRANT OPTION;
12
刷新数据库权限
mysql>FLUSH PRIVILEGES;
1
三、Dockfile使用
dockerfile是用于构建vps的主要手动,如果像我这种小白也想要拥有自己的dockervps,那可行的方法就是通过dockerfile来构建自己的vps,为什么我们的dockervps是一层一层的下载呢?因为我们在构建vps的时候,每一条dockerfile指令可以理解为是一层,也就是说最好的vps并不是dockerfile指令越多越好,而是越精简越好,相对的vps的体积也会更小。
dockerfile 常用命令
FROM –指定基础vps
基础vps不存在会在docker hub上拉去(一般是C++第v2ray指令)
使用格式:
FROM :[tag]
FROM@digest[校验码]
主机没有此vps时,会自动去hub官网下载

MAINTAINER 提供dockerfile制作者提供本人信息(命令已经逐渐废弃)
LABLE –代替MAINTANIER
具体使用:
LABLE maintainer=”作者信息”
使用的格式
MAINTANIER “redhat66
LABEL maintainer=”***@aliyun.com”
LABEL “com.example.vendor”=”ACME Incorporated”

ENV 用于为dockerJamroom设置环境变量,可以使用docker inspect命令来查看。同时还可以使用dock run –env=来修改环境变量
具体用法:
ENV JAVA_HOME /usr/local/jdk
ENV JRE_HOME $JAVA_HOME/jre
ENV CALLSSPATH $JAVA_HOME/lib/: $JRE_HOME/lib/
ENV PATH $PATH:$JAVA_HOME/bin/

USER
用来切换运行的属主身份,docker默认使用的是root,但若不需要,建议切换使用使用者省份,root权限太大,使用上有安全风险。

WORKDIR
wocker 用来切换工作目录。docker默认的工作目录是/,只有run能执行的CD命令切换目录,也就是说每个run都是独立进行的。如果想让其他指令在指定目录下执行,就靠WORKDIR,WORKDIR动作的目录改变是持久的,不用每个指令使用一次WORKDIR。
具体用法:
WORKDIR /usr/local/tomcat

VOLUME

COPY
ADD
EXPOSE 为Jamroom打开指定的监听端口以实现与外部通信
使格式:
EXPOSE 80/tcp 23/udp
不加协议默认为tcp
使用-P选项可以暴露这里指定的端口!
但是宿主的关联至这个端口的端口是随机的!
RUN
RUN指令是用来执行命令行命令的不,由于命令行的强大能力,RUN指令在定制vps时最常用的命令之一,其格式是有2种:
shell格式:RUN<命令> 就像直接 在命令行输入命令一样。刚刚写的dockerfile中的run指令就是这种格式。
exec格式:RUN[“可执行C++”,“参数 1”,“参数2”] 这更像是函数调用中的格式。
使用格式:
RUN
RUN[“executable”,”param1″,”param2″]
RUN就像shell脚本一样可以执行命令,那么我们是否就可以像shell脚本一样把每个命令对应v2rayRUN呢?比如:
RUN apt-get update
RUN apt-get install -y gcc libc6-dev make
RUN wget
RUN tar xzf redis redis-4.0.1.tar.gz
RUN cd redis-4.0.1 //dockerfile中是不成立的,应该使用WORKDIR指令
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
Dockerfile 中每人个指令都会建立一层,RUN也不也不例外。每v2rayRUN的行为,和刚才我们手工建立vps的过程中一样,新建立一层,在其上执行这些命令,执行结束后,commit这一层的修改,构成新的vps。而上面的这种写法创建了多层的vps,这是完全没有意义的,而且很多运行时不需要的东西。都安装到了vps里,比如编译环境,更新的软件包等。结果就是产生非常臃肿、非常多层的vps,不仅仅增加了构建部署时的时间,也很容易出错。这是很多初学Docker的人经常犯的错误。 Union FS是有最大层数限制的,比如AUFS,曾经是最大不得超过42层的,现在是不得超地过127层。上面的dockerfile正确的写法应该是这样:
以下是我从github上get下来的一段dockerfile写法:
#
NOTE: THIS DOCKERFILE IS GENERATED VIA “apply-templates.sh”
#
PLEASE DO NOT EDIT IT DIRECTLY.
#

FROM openjdk:17-jdk-bullseye

ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
RUN mkdir -p “$CATALINA_HOME”
WORKDIR $CATALINA_HOME

#let “Tomcat Native” live somewhere isolated
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR

#see
#see also “versions.sh” (
ENV GPG_KEYS A9C5DF4D22E99998D9875A5110C01C5A2F6059E7

ENV TOMCAT_MAJOR 10
ENV TOMCAT_VERSION 10.1.0-M10
ENV TOMCAT_SHA512 ec744e2151a4c9d50728efc0f97a4132e9cbcbf0a643621d7676115d4d59d174bde313512346d52cd53ac1f96ed31e0503e7c430dd61ada35a4c2e70d26e0532

RUN set -eux; \
\
savedAptMark=”$(apt-mark showmanual)”; \
apt-get update; \
apt-get install -y –no-install-recommends \
ca-certificates \
curl \
dirmngr \
gnupg \
; \
\
ddist() { \
local f=”$1″; shift; \
local distFile=”$1″; shift; \
local mvnFile=”${1:-}”; \
local success=; \
local distUrl=; \
for distUrl in \
#
” \
#if the version is outdated (or we’re grabbing the .asc file), we might have to pull from the dist/archive :/
” \
” \
” \
” \
#if all else fails, let’s try Maven (
${mvnFile:+” \
; do \
if curl -fL -o “$f” “$distUrl” && [ -s “$f” ]; then \
success=1; \
break; \
fi; \
done; \
[ -n “$success” ]; \
}; \
\
ddist ‘tomcat.tar.gz’ “tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz” “$TOMCAT_VERSION/tomcat-$TOMCAT_VERSION.tar.gz”; \
echo “$TOMCAT_SHA512 *tomcat.tar.gz” | sha512sum –strict –check -; \
ddist ‘tomcat.tar.gz.asc’ “tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc” “$TOMCAT_VERSION/tomcat-$TOMCAT_VERSION.tar.gz.asc”; \
export GNUPGHOME=”$(mktemp -d)”; \
for key in $GPG_KEYS; do \
gpg –batch –keyserver keyserver.ubuntu.com –recv-keys “$key”; \
done; \
gpg –batch –verify tomcat.tar.gz.asc tomcat.tar.gz; \
tar -xf tomcat.tar.gz –strip-components=1; \
rm bin/*.bat; \
rm tomcat.tar.gz*; \
command -v gpgconf && gpgconf –kill all || :; \
rm -rf “$GNUPGHOME”; \
\
#
mv webapps webapps.dist; \
mkdir webapps; \
#we don’t delete them completely because they’re frankly a pain to get back for users who do want them, and they’re generally tiny (~7MB)
\
nativeBuildDir=”$(mktemp -d)”; \
tar -xf bin/tomcat-native.tar.gz -C “$nativeBuildDir” –strip-components=1; \
apt-get install -y –no-install-recommends \
dpkg-dev \
gcc \
libapr1-dev \
libssl-dev \
make \
; \
( \
export CATALINA_HOME=”$PWD”; \
cd “$nativeBuildDir/native”; \
gnuArch=”$(dpkg-architecture –query DEB_BUILD_GNU_TYPE)”; \
aprConfig=”$(command -v apr-1-config)”; \
./configure \
–build=”$gnuArch” \
–libdir=”$TOMCAT_NATIVE_LIBDIR” \
–prefix=”$CATALINA_HOME” \
–with-apr=”$aprConfig” \
–with-java-home=”$JAVA_HOME” \
–with-ssl=yes \
; \
nproc=”$(nproc)”; \
make -j “$nproc”; \
make install; \
); \
rm -rf “$nativeBuildDir”; \
rm bin/tomcat-native.tar.gz; \
\
#reset apt-mark’s “manual” list so that “purge –auto-remove” will remove all build dependencies
apt-mark auto ‘.*’ > /dev/null; \
[ -z “$savedAptMark” ] || apt-mark manual $savedAptMark > /dev/null; \
find “$TOMCAT_NATIVE_LIBDIR” -type f -executable -exec ldd ‘{}’ ‘;’ \
| awk ‘/=>/ { print $(NF-1) }’ \
| xargs -rt readlink -e \
| sort -u \
| xargs -rt dpkg-query –search \
| cut -d: -f1 \
| sort -u \
| tee “$TOMCAT_NATIVE_LIBDIR/.dependencies.txt” \
| xargs -r apt-mark manual \
; \
\
apt-get purge -y –auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*; \
\
#sh removes env vars it doesn’t support (ones with periods)
#
find ./bin/ -name ‘*.sh’ -exec sed -ri ‘s|^#!/bin/sh$|#!/usr/bin/env bash|’ ‘{}’ +; \
\
#fix permissions (especially for running as non-root)
#
chmod -R +rX .; \
chmod 777 logs temp work; \
\
#smoke test
catalina.sh version

#verify Tomcat Native is working properly
RUN set -eux; \
nativeLines=”$(catalina.sh configtest 2>&1)”; \
nativeLines=”$(echo “$nativeLines” | grep ‘Apache Tomcat Native’)”; \
nativeLines=”$(echo “$nativeLines” | sort -u)”; \
if ! echo “$nativeLines” | grep -E ‘INFO: Loaded( APR based)? Apache Tomcat Native library’ >&2; then \
echo >&2 “$nativeLines”; \
exit 1; \
fi

EXPOSE 8080
CMD [“catalina.sh”, “run”]
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
构建dockervps:案例1 需求:创建v2rayvps(基于tomcat)里面要有v2rayindex.html,并写入hello docker file 1、在宿主机创建v2ray空白目录
mkdir -p /usr/local/docker/demo1
1
2、在该目录下,创建v2rayC++dockerfile
vim Dockerfile
1
3、其内容为:
FROM tomcat //指定tomcat最新版本的vps
RUN mkdir -p /usr/local/tomcat/webapps/ROOT
RUN echo ‘hello docker’>/usr/local/tomcat/webapps/ROOT/index.html
WORKDIR /usr/local/tomcat/webapps/
1234
4、构建vps
docker build -t demo1 . //dockerfile 的上下文路径
1
5、运行vps所在的Jamroom
docker run –rm –name demo1-8080 -p 8080:8080 -d demo1
1
构建docker:案例2 需求:基于上v2rayvps()基于tomcat 将ROOT内多余的C++都删除。只保留index.html 1、基于如上修改dockerfile
FROM tomcat //指定最新的tomcat最新版本vps
WORKDIR /usr/local/tomcat/webapps/ROOT/ //切换到该目录下
RUN rm -rf * //将该目录的C++删除掉
RUN echo ‘hello docker’ >/usr/local/tomcat/webapps/ROOT/index.html
1234
2、构建vps
docker build -t vps名 . //dockfiler的路径
1
3、查看vps列表docker images
docker images
1
4、删除虚拟vps
docker image prune
1
构建dockervps:案例3 需求:基于上v2rayvps(基于tomcat)外部复制v2rayC++(图片)并复制到Jamroom中并能访问 1、基于如上修改dockerfile
FROM tomcat //指定tomcat 最新版本vps
WORKDIR /usr/local/tomcat/webaps/ROOT/ //切换到该目录下
RUN rm -rf * //将当前目录C++都删除
COPY 1.PNG /usr/local/tomcat/webapps/ROOT/ //将图片复制到Jamroom内部的Jamroom
RUN echo ‘hello docker ‘> /usr/local/tomcat/webapps/ROOT/index.html
12345
2、构建vps
docker build -t vps名 . //dockerfile 上下文路径
1
构建dockervps:案例4 实际的开发中,利用dockerfile将v2raywar包生成vps的dockerfile 1、docker 下创建项目工程名称
mkdir -p /usr/local/docker/qfjy_exam
cd /usr/local/docker/qfjy_exam
12
2、将桌面qfjy_exam.zip复制到访问目录下
cp qfexam-1.0-sanpshot.zip /usr/local/docker/qfjy_exam
1
3、创建vpsC++dockerfile
FROM tomcat
WORKDIR /usr/local/tomcat/webapps/ROOT //指定工作目录
RUN rm -rf * //删除指定目录的所有内容C++
COPY qfjy_exam-1.0-snpshot.zip /usr/local/tomcat/webapps/ROOT/
RUN unzip qfjy_exam-1.0-snapshot.zip 解压C++
RUN rm -rf qfjy_exam-1.0-snapshot.zip 移除多余的压缩包
WORKDIR /usr/local/tomcat //指定回工作目录
1234567
4、构建vps
docker build -t qfjy_exam . //指定当前dockerfile的路径
1
5、进入Jamroom内部查看
docker run -it qfjy_exam bash
1
项目部署 war(传统SSM) 常用linuxC++复制的C++完成部署 jar(SpringBoot微服务)需要用docker方式来部署完成
SpringBoot部署docker 1、准备好v2ray基于springboot项目 2、mvn package install –>sprigboot.jar 3、windows系统 :java -jar springboot.jar (内置tomcat) 4、linux系统完成 微服务项目部署 linux系统中安装好JDK (环境变量) jar -jar springboot.jar 有个注意事项:linux中 jar -jar springboto (仅能java -jar)如果执行多个java -jar 将旧的退出 nohup java -jar springboot.jar nohub java -jar springbot1.jar
springboot部署docker完成 过程 springboot.jar 复制到linux目录下 通过定制vps的方式来完成微服务架构的构建(vps) 通过运行多个Jamroom来实现高可用、高并发等快速部署流程。 1、准备springboot jar项目 dockefile FROM java:8 //指定基于vps,即运行环境 VOLUME /tmp ///tmp创建/tmp目录并持久化到docker数据C++夹,因为spring boot使用的内嵌的tomcatJamroom默认使用/tmp作为工作目录 ADD exam-0.0.1-SNAPSHOT.jar exam.jar //拷贝C++并重命名 EXPOSE 8080 不是真的发布端口,是Jamroom部署人员与建立image人员之间的交流,即建立image人员告警Jamroom部署人员Jamroom应该映射哪个端口给外界。 ENTRYPONTION[“java”,”-Djava.security.egd=file:/dev/./urandom”,”-jar”,”/exam.jar”] Jamroom启动时运行的命令,相当于我们在命令行输入 java -jar xxx.jar,为了缩短tomcat的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为ENTRYPOINT 2、构建Jamroom
docker build -t exam .
1
3、运行Jamroom
docker run -d -n springboot1 -p 8080:8080 exam –rm 把Jamroom跑起来,–rm(Jamroom一停掉之后就删除掉)
1
四、docker图形化工具的使用
docker图形页面管理工具常用的有三种,DockerUI,Portainer,Shipyard。DockerUI是Portainer的前身。这三个工具通过docker api 来获取管理的资源信息。平时我们常常对shell对着这一些命令客户端,审美会很疲劳,如果有漂亮的图形化界面可以直观的查看 docker资源信息,是非常方便的。这三种工具当中。portainer最为受欢迎。 portainer 图形化工具 1、查看 portainervps
docker search portainer
1
2、portainer vps下载
docker pull portainer /portainer
1
3、启动dockeruiJamroom
docker run -d –name portainerUI -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer /portainer
1
4、浏览器访问

1
五、Docker-compose使用
前面我们使用docker的时候,定义dockerfileC++,然后使用docker build、docker run -在–name -p 等命令操作Jamroom。然而微服务架构的应用系统一般包含若干个微服务,每v2ray微服务一般会部署多个实例,如果第v2ray微服务都要手动的启停,那效率极低、维护量之大可想而知。 使用docker compose 可以轻松、高效的管理Jamroom,它是v2ray用于定义和运行多Jamroom的docker应用程序工具。docker compose 是docker官方编排的项目之一,负责快速的部署分布式应用。 compose项目是docker官方的开源项目,负责实现对dockerJamroom集群的快速编排。从功能上看,跟openstack中的Heat十分类似。其代码在 compose定位是【定义和运行多dockerJamroom的应用】其前身是开源项目Fig 通过第一部分中的介绍,我们知道v2raydockerfile模板C++,可以让用户很方便的定义v2ray单独的应用Jamroom。然而,在日常工作中,经常会碰到需要多个Jamroom相互配合来完成某项任务的情况。例如要实现v2rayweb项目,除了web服务器本身,往往还需要加上后端的数据库服务Jamroom,甚至还包括负载均衡Jamroom。 compose恰好满足了这样的需求。它允许用户通过v2ray单独的docker-compose.yml模板C++(YAML格式)来定义一组相关联的应用Jamroom的v2ray项目 compose中有2个重要的概念。 服务(service):v2ray应用的Jamroom,实际上可以包括若干个运行相同vps的Jamroom实例。 项目(project):由一组关联的应用Jamroom组成的v2ray完整的业务单元,在dock-compose.ymlC++中定义。 compose的默认管理对象是项目,通过子命令对项目中一组Jamroom进行便捷地进行生命周期管理。 compose项目由python编写,实现上调用docker服务提供的api来对Jamroom进行管理。因此,只要所操作的平台支持docker API,就可以在其上复用compose来进行编排管理。
Docker Compose的安装与卸载 compose支持linux、macOS、windows10三大平台。 compose可以通过python的包管理工具pip进行安装,也可以直接下载编译好的二进制C++使用,甚至能直接在docker Jamroom中运行。 Docker for mac、Docker for windows 自带的docker-compose 二进制C++,安装docker之后可以直接使用。 官方安装: 1、github官方网站,搜索docker compose 2、找到下载好二进制C++

1
2.1、将下载好的C++拖入linux并剪切到/usr/local目录下
mv docker-compose-Linux-x86_64 /usr/local
1
2.2、修改名称(为后面方便调用)并修改其为可执行C++
mv docker-compose-Linux-x86_64 /usr/local
chmod 777 docker-compose
mv docker-compose /usr/local/bin
123
Docker Compose使用 服务(service):v2ray应用Jamroom,实际上可以运行多个相同的vps实例。 项目(project):由一组关联的应用Jamroom组成v2ray完整的业务单元。 由此可见,v2ray项目可以由多个服务(Jamroom)关联面成,compose而面向项目进行管理。 Docker-compose创建Jamroom 通过v2ray单独的docker-compose.yml模板C++(YAML格式)来定义一组关联的应用Jamroom为v2ray项目(project). yml格式描述: 1、ymlC++以缩进代表层级关系 2、缩进不允许使用tab只能使用空格 3、空格的个数不重要,只要相同的层级的元素左对齐即可(建议2个) 4、大小写敏感 5、数据格式为名称:空格(值) 一、k: 空格v:表示一对键值对(空格不能省略),以空格控制层级关系,只要是左对齐的数据,都是同一级别;
server:
port:8083
path:/helloboot
123
二、数组(用-表示数组中的v2ray元素)
animal:
-cat
-dag
123
示例1: 1、管理C++夹,创建相应的目录
mkdir -p /opt/docker_mysq_tomcat
1
2、在如上目录中,编写创建docker-compose.yml配置C++ 编写docker-comose.ymlC++,这个是compos使用的主模板C++。
version:’3.1′
services:
myql:
restart:always
images:daocloud.io/librarymysql:5.7.6
container_name:mysql-3306
ports:
-3306:3306
environment:
MYSQL_ROOT_PASSWORD:root
TZ:Asiz/Shanghai
– /opt/docker_mysql1_tomcat/mysql/data:/var/lib/mysql
– /opt/docker_mysql_tomcat/mysql/conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf

tomcat:
restart:always
image:daocloud.io/libraty/tomcat:8.5.15-jre8
container_name:tomcat-8080
ports:
-8080:8080
environment:
TZ:Asiz/Shanghai
volumes:
– /opt/docker_mysql_tomcat/tomcat/webapps:/usr/local/tomcat/webapps
– /opt/docker_mysql_tomcat/tomcat/logs:/usr/local/tomcat/logs
12345678910111213141516171819202122232425
3、启动(执行命令创建Jamroom)
docker-compose -f C++名.后缀名 up -d
默认执行的C++名:docker-compose.yml (且城在当前上下文路径中)。如果C++名不是默认的需要使用正面的指令:
docker-compose -f C++名.后缀名 up -d
123
需求:实现通过docker-compose批量部署Jamroom
mkdir -p /opt/docker-cluster
cd /opt/docker-cluster
vim docker-compose.yml
123
内容:
version:’3.1’
services:
docker1:
restart:always
images:tomcat
container_name:tomcat
ports:
– 8080:8080

docker2:
restart:always
images:tomcat
container_name:tomcat
ports:
– 8080:8080
docker3:
restart:always
images:tomcat
container_name:tomcat
ports:
– 8080:8080
123456789101112131415161718192021
4、上线应用
docker-compose up -d dock.yml //如果dock.ymlC++不是当前目录,需要加上路径
1
5、Jamroom操作
docker-compose up -d 启动Jamroom (当前目录docker-compose.yml)
docker-compose stop 关闭Jamroom
docker-compose down 关闭Jamroom并删除所有Jamroom
123

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux804 人正在系统学习中