docker 安裝jumpserver


#docker 安裝
mkdir /etc/docker
echo "{
    \"registry-mirrors\" : [
    \"https://registry.docker-cn.com\",
    \"https://docker.mirrors.ustc.edu.cn\",
    \"http://hub-mirror.c.163.com\",
    \"https://cr.console.aliyun.com/\"
  ]
}">>/etc/docker/daemon.json


yum -y install yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
systemctl start docker && systemctl enable docker

#生成秘鑰
if [ "$SECRET_KEY" = "" ]; then SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`; echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc; echo $SECRET_KEY; else echo $SECRET_KEY; fi

if [ "$BOOTSTRAP_TOKEN" = "" ]; then BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`; echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc; echo $BOOTSTRAP_TOKEN; else echo $BOOTSTRAP_TOKEN; fi

注:生成完 SECRET_KEY 和 BOOTSTRAP_TOKEN 變量后一定要確認一下,如果出現異常將會影響到后面的過程

 

創建jms容器中的日志及數據掛到宿機的目錄
mkdir -p /jumpserver/jumpserver/data
mkdir -p /jumpserver/koko/data
mkdir -p /jumpserver/nginx/logs
mkdir -p /jumpserver/mysql/{data,logs}

 

==============  不管用以下哪種方法都要執行以上操作 創建完容器后一定要等幾分鍾再訪問  =====================

方法1:

#pull鏡像和創建容器(所有數據都在容器中)
docker run --name jms_all -d \
-p 80:80 -p 2222:2222 \
-e SECRET_KEY=$SECRET_KEY \
-e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \
jumpserver/jms_all:latest

網頁登錄容器所在IP,賬密:admin/admin

方法2:(個人推薦使用該方法)

1、容器中的jumpserver的數據在/opt/jumpserver/data目錄中,日志在/opt/jumpserver/logs目錄中,初始化數據庫在/opt/jumpserver/utils目錄中,配置文件在/opt/jumpserver/config.yml文件中,啟動jumpserver命令為/opt/jumpserver/jms { start | restart | stop }

2、koko插件的配置文件在/opt/koko/config.yml文件中,數據在/opt/koko/data目錄中

docker run --name jms_all -d \
-p 80:80 -p 2222:2222 \
-e SECRET_KEY=$SECRET_KEY \
-e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \
-v /jumpserver/jumpserver/data:/opt/jumpserver/data \
-v /jumpserver/jumpserver/logs:/opt/jumpserver/logs \
-v /jumpserver/koko/data:/jumpserver/koko/data \
-v /jumpserver/nginx/logs:/var/log/nginx/ \
jumpserver/jms_all:latest

#測試(其他機器連接172.16.186.131,連接用戶是admin,密碼是admin)

 

方法3:(該方法順序不能變)

#docker pull mysql
docker run --restart=always \
--name mysql5.7 -id \
-e MYSQL_DATABASE="jumpserver" \
-e MYSQL_USER="jumpserver" \
-e MYSQL_PASSWORD="AA7788aa" \
-e MYSQL_ROOT_PASSWORD="AA7788aa" \
-v /jumpserver/mysql/data:/var/lib/mysql \
-v /jumpserver/mysql/logs:/var/log/mysql/ \
-p 3306:3306 -d mysql:5.7.20

#docker pull redis
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo "vm.overcommit_memory=1">>/etc/sysctl.conf
echo "net.core.somaxconn= 1024">>/etc/sysctl.conf
echo "'echo never > /sys/kernel/mm/transparent_hugepage/enabled'">>/etc/rc.local
sysctl -p
docker run -p 6379:6379 --name redis -v /jumpserver/redis/data:/data -d redis redis-server --requirepass "A12345a" --appendonly yes

redis容器中登錄方式

 
#docker pull jms
docker run --restart=always \
--name jms_all -d \
-p 80:80 -p 2222:2222 \
-e SECRET_KEY=$SECRET_KEY \
-e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \
-v /jumpserver/jumpserver/data:/opt/jumpserver/data \
-v /jumpserver/jumpserver/logs:/opt/jumpserver/logs \
-v /jumpserver/koko/data:/jumpserver/koko/data \
-v /jumpserver/nginx/logs:/var/log/nginx/ \
-e DB_HOST="mysql5.7" \
-e DB_PORT=3306 \
-e DB_USER=root \
-e DB_PASSWORD=AA7788aa \
-e DB_NAME=jumpserver \
--link mysql5.7:mysql \
-e REDIS_HOST=redis \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD=A12345a \
--link redis:redis \
jumpserver/jms_all:latest

                      注:創建完容器后要稍等一下在去頁面訪問。

 

方法4:(該方法適合在無互聯網環境中使用且只需redis和jms_all即可)

if [ "$SECRET_KEY" = "" ]; then SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`; echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc; echo $SECRET_KEY; else echo $SECRET_KEY; fi

if [ "$BOOTSTRAP_TOKEN" = "" ]; then BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`; echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc; echo $BOOTSTRAP_TOKEN; else echo $BOOTSTRAP_TOKEN; fi

mkdir -p /jumpserver/jumpserver/data
mkdir -p /jumpserver/koko/data
mkdir -p /jumpserver/nginx/logs
mkdir -p /jumpserver/mysql/{data,logs}

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo "vm.overcommit_memory=1">>/etc/sysctl.conf
echo "net.core.somaxconn= 1024">>/etc/sysctl.conf
echo "'echo never > /sys/kernel/mm/transparent_hugepage/enabled'">>/etc/rc.local
sysctl -p

#需在互聯網中將redis和jms_all的鏡像pull下來,再打成tar包發送至內網環境中,並導入進去
將鏡像打包
docker save -o <new_name>.tar  <ImageID>
導入鏡像
docker load -i <new_name>.tar
將鏡像更換名
docker tag <images_name>:<tag> <image_name>:<tag>

docker run -p 6379:6379 --name redis -v /jumpserver/redis/data:/data -d redis redis-server --requirepass "A12345a" --appendonly yes

 

docker run --restart=always \
--name jms_all -d \
-p 80:80 -p 2222:2222 \
-e SECRET_KEY=$SECRET_KEY \
-e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \
-v /jumpserver/jumpserver/data:/opt/jumpserver/data \
-v /jumpserver/jumpserver/logs:/opt/jumpserver/logs \
-v /jumpserver/koko/data:/jumpserver/koko/data \
-v /jumpserver/nginx/logs:/var/log/nginx/ \
-v /jumpserver/mysql/data:/var/lib/mysql/ \
-v /jumpserver/mysql/logs:/var/log/mariadb/ \
-e REDIS_HOST=redis \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD=A12345a \
--link redis:redis \
jms_all:latest

注:如在創建jms容器時報錯,需先將-v /jumpserver/mysql/logs:/var/log/mariadb/ \這條去掉,再創建,無問題后再刪掉容器后再加上-v /jumpserver/mysql/logs:/var/log/mariadb/ \選項來創建jms容器

 

 

docker容器設置開機自啟動:
--restart具體參數值詳細信息
no - 容器退出時,不重啟容器
on-failure - 只有在非0狀態退出時才從新啟動容器
always - 無論退出狀態是如何,都重啟容器
使用 on-failure 策略時指定 Docker 將嘗試重新啟動容器的最大次數;默認情況下Docker將嘗試永遠重新啟動容器;
docker run --restart=on-failure:10 redis
如果創建容器時未指定 --restart=always ,可通過 update 命令更改;    
docker update --restart=always 容器ID

 

如未使用--restart=always選項,在服務器或其他情況導致服務器關機/重啟,再次啟動容器時需先起MySQL、redis,最后起jms

 

添加windows系列主機

先創建組,左側“用戶管理”---用戶組---創建---填寫信息---提交

創建用戶

左側“用戶管理”---用戶列表---創建---填寫信息(如下圖,下圖為填寫好以后的)---提交

創建管理用戶

左側“資產管理”---管理用戶---創建---填寫信息(名稱可自定義,用戶名填寫登錄被控機的賬號和密碼)---提交

創建系統用戶

左側“資產管理”---系統用戶---創建---填寫信息---提交

(名稱可自定義,windows也可以自動登錄,用戶名為登錄登錄被控機的賬戶,優先級默認,協議為rdp,自動推送關閉,密碼為登錄被控機的密碼)

將資產授權給用戶

左側“權限管理”---資產授權---創建---填寫信息---提交

注:上圖中的開始日期和失效日期為可選項

以上所有都得保證下圖中的2個服務是在線狀態,如下圖所示

用戶登錄

注:賬密為服務端中“用戶管理”---“用戶列表”中的,客戶端登錄時用戶名為“用戶列表”中的用戶名列,密碼為自定義的

點擊上圖中的“動作”列中的第一個圖標即可連到windows被控端,如下圖所示(因為在服務端授權時選的“自動登錄”,所以點完“動作”列中的第一個圖標后可以直接連進來)

 

添加Linux主機

組、用戶還用上面的“張三”,因為該項僅供web端登錄使用

創建管理用戶

資產管理----管理用戶----創建(名稱自定義,用戶名和密碼為linux端的一個用戶和對應的密碼)

創建系統用戶

資產管理----系統用戶----創建

 注:上圖中的名稱可自定義,sudo項為使用zs用戶登錄進去后能執行的命令

添加資產

資產管理----資產列表----添加資產----創建(主機名必須如實寫)

資產授權

權限管理----資產授權----創建

還是使用張三用戶登錄進行查看/測試

 注:可以看到使用zs用戶執行id命令時產生了一個報錯,待解決!!!

 

或者使用官方的腳本安裝

# https://github.com/jumpserver/jumpserver/releases
wget https://github.com/jumpserver/jumpserver/releases/download/2.0.1/quick_start.sh
sh -x quick_start.sh
注:使用該方式時需要把koko容器中的logs目錄單獨掛出來,不然日志隨着時間的推移會越來越大(容器中的日志在/config/tomcat9/logs)
或參考

 

    歡迎加入QQ群一起討論Linux、開源等技術


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM