本文章介紹應(yīng)用容器引擎docker安裝JAVA開發(fā)中常用的一些軟件淤袜。
1.docker安裝JDK
2.docker安裝MySQL
3.docker安裝Redis
4.docker安裝Tomcat
5.docker安裝nginx
6.docker安裝rancher
7.docker安裝zookeeper
8.docker安裝kafka(需要安裝zookeeper)
9.docker安裝MongoDB
10.docker安裝Jenkins
11.docker安裝禪道
12.docker安裝gitlab(很占內(nèi)存)
13.docker安裝GitBlit
14.docker安裝Maven私服(nexus)-很占內(nèi)存(至少2G)
15.docker安裝達(dá)夢(mèng)數(shù)據(jù)庫
16.docker安裝nacos
17.docker執(zhí)行jar程序(需要安裝jdk)
# 請(qǐng)?zhí)D(zhuǎn)到有道筆記查看(展示的格式比較好一些)
https://note.youdao.com/s/DEewuHeZ
#
注意事項(xiàng)
docker安裝的軟件是使用不了 127.0.0.1 或者 localhost的IP,
但是可以使用 172.17.0.1(docker安裝完畢就存在) 或者 該外網(wǎng)IP(轉(zhuǎn)換需要浪費(fèi)時(shí)間和不安全)卷中,
也可以使用docker的IP(升級(jí)時(shí)會(huì)變更)
端口說明
3307:3306
[主機(jī)端口]:[容器端口]
路徑映射
/data/soft/mysql_home:/var/lib/mysql
[主機(jī)路徑]:[容器路徑]
查詢docker鏡像
https://hub.docker.com/search?q=
JDK
# 參考 https://www.cnblogs.com/hl15/p/13683833.html
docker pull adoptopenjdk/openjdk8
#啟動(dòng)
docker run -di --name=jdk1.8 adoptopenjdk/openjdk8
執(zhí)行需要命令
/bin/bash
MySQL(發(fā)現(xiàn)幾個(gè)月后有數(shù)據(jù)被還原的現(xiàn)象)
#?參考?https://blog.csdn.net/Cherry_King/article/details/122710591
docker pull mysql:8.0
mkdir -p /data/soft/mysql_home
chmod 777 /data/soft/mysql_home
docker run -itd --name=mysql-8 -p 7306:3306 -v /data/soft/mysql_home:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=aaa123456 -d mysql:8.0
Redis
#https://www.bilibili.com/video/BV1s5411j7zq?p=15&spm_id_from=pageDriver
#https://blog.csdn.net/qq_27759825/article/details/122577184
docker pull redis
sudo mkdir -p /data/soft/redis_home
sudo mkdir -p /data/soft/redis_home/conf
sudo mkdir -p /data/soft/redis_home/data
#沒有找到配置
docker run -di --name=redis -p 5379:6379 redis
docker run -d --name=redis -p 5379:6379 --restart always -v /data/soft/redis_home/data:/data redis
#使Redis重啟數(shù)據(jù)不會(huì)消失
vi /etc/sysctl.conf
vm.overcommit_memory = 1
Tomcat
#?參考?https://www.bilibili.com/video/BV1s5411j7zq?p=15
docker pull tomcat:jdk17
docker run -di --name=tomcat -p 8080:8080 tomcat:jdk17
docker exec -it tomcat /bin/bash
docker run -di --name=tomcat -p 8080:8080 -v /soft/webapps:/usr/local/tomcat/webapps? tomcat:jdk17
nginx
#?參考?https://blog.lupf.cn/articles/2020/11/08/1604845476002.html
-- 使用docker搜索nginx
docker search nginx
-- 使用docker安裝nginx
docker pull nginx
-- 運(yùn)行nginx
docker run -di -p 80:80 nginx
mkdir -p /data/soft/nginx_home
chmod 777 /data/soft/nginx_home
mkdir -p /data/soft/nginx_home/conf
chmod 777 /data/soft/nginx_home/conf
mkdir -p /data/soft/nginx_home/html
chmod 777 /data/soft/nginx_home/html
mkdir -p /data/soft/nginx_home/logs
chmod 777 /data/soft/nginx_home/logs
-- 拷貝完之后
docker cp [容器ID]:/etc/nginx/nginx.conf /data/soft/nginx_home/conf
docker cp [容器ID]:/etc/nginx/conf.d/default.conf /data/soft/nginx_home/conf
docker cp [容器ID]:/usr/share/nginx/html /data/soft/nginx_home/html
docker cp [容器ID]:/var/log/nginx /data/soft/nginx_home/logs
-- 停止并刪除容器
docker stop [容器ID]
docker rm [容器ID]
sudo docker run --name=nginx -p 80:80 --restart=always\
-v /data/soft/nginx_home/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/soft/nginx_home/conf/default.conf:/etc/nginx/conf.d/default.conf \
-v /data/soft/nginx_home/html:/usr/share/nginx/html \
-v /data/soft/nginx_home/logs:/var/log/nginx \
-d nginx
rancher
docker pull rancher/server:v1.6.30
docker pull rancher/server
docker run -di --name=rancher -p 8080:8080 rancher/server
netstat -an | grep 8080
docker run -di --name=rancher --restart always -p 9090:8080 rancher/server:v1.6.30
//忘記了這個(gè)是干什么的
sudo docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.11 http://[IP]:9090/v1/scripts/D0A6ABF3FD48645211EF:1640908800000:bPBnd1SkXBqOv0PwlIKLTJ9xiE
#重啟
docker restart rancher
# 參考 http://t.zoukankan.com/BigStupid-p-9165957.html
//其他的相關(guān)容器
rancher/server latest 98d8bb571885 2 years ago 1.08GB
rancher/scheduler? ? ? ? v0.8.6? ? ? ? ? ? ? fbedeaddc3e9? ? ? ? 3 years ago? ? ? ? 248MB
rancher/agent? ? ? ? ? ? v1.2.11? ? ? ? ? ? 1cc7591af4f5? ? ? ? 3 years ago? ? ? ? 243MB
rancher/net? ? ? ? ? ? ? v0.13.17? ? ? ? ? ? f170c38e3763? ? ? ? 3 years ago? ? ? ? 311MB
rancher/dns? ? ? ? ? ? ? v0.17.4? ? ? ? ? ? 678bde0de4d2? ? ? ? 3 years ago? ? ? ? 249MB
rancher/healthcheck? ? ? v0.3.8? ? ? ? ? ? ? ce78cf69cc0b? ? ? ? 3 years ago? ? ? ? 391MB
rancher/metadata? ? ? ? ? v0.10.4? ? ? ? ? ? 02104eb6e270? ? ? ? 3 years ago? ? ? ? 251MB
rancher/network-manager? v0.7.22? ? ? ? ? ? 13381626c510? ? ? ? 3 years ago? ? ? ? 256MB
rancher/net? ? ? ? ? ? ? holder? ? ? ? ? ? ? 665d9f6e8cc1? ? ? ? 5 years ago? ? ? ? 267MB
zookeeper
docker pull wurstmeister/zookeeper
docker run -di --name=zookeeper -p 2181:2181 wurstmeister/zookeeper
netstat -an | grep 1010
kafka
docker pull wurstmeister/kafka
//關(guān)閉防火墻
systemctl stop? firewalld
docker run -di --name=kafka -p 4327:4327 --env KAFKA_HEAP_OPTS=-Xmx4G \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=106.52.63.80:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://[IP]:4327 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:4327 \
-d wurstmeister/kafka
//開啟防火墻
systemctl start? firewalld
修改docker的配置
docker exec -ti [鏡像ID] /bin/bash
MongoDB
docker pull mongo
docker run -di --name=mongo -p 27017:27017 mongo --auth
#配置用戶和密碼
docker exec -it mongo mongo admin
# 創(chuàng)建一個(gè)名為 admin扛芽,密碼為 aaa123456 的用戶元潘。
>? db.createUser({ user:'admin',pwd:'aaa123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 嘗試使用上面創(chuàng)建的用戶信息進(jìn)行連接殿如。
> db.auth('admin', 'aaa123456');
#https://blog.csdn.net/weixin_46244732/article/details/121165722
#新版不能使用上面的方法
docker pull mongo:6.0.2
sudo mkdir -p /data/soft/mongo_home
sudo mkdir -p /data/soft/mongo_home/db
docker run -di --name mongodb --restart always -v /data/soft/mongo_home/db:/data/db -p 7303:27017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=aaa123456 --privileged=true mongo:6.0 --auth
//還需要給用戶權(quán)限馁菜,不然程序不能訪問對(duì)應(yīng)的數(shù)據(jù)庫茴扁,工具可以操作
db.createUser({
? ? user: "admin",
? ? pwd: "aaa123456",
? ? roles: [
? ? ? ? {
? ? ? ? ? ? role: "readWrite",
? ? ? ? ? ? db: "realtime"
? ? ? ? }
? ? ],
? ? authenticationRestrictions: [ ]
})
Jenkins
// 參考 https://segon.cn/install-jenkins-using-docker.html
docker pull jenkins/jenkins:2.222.3-centos
mkdir -p /data/soft/jenkins_home
chmod 777 /data/soft/jenkins_home
chown -R 1000:1000 /data/soft/jenkins_home/
docker run -d --name=jenkins -p 18080:8080 -p 50000:50000 -v /data/soft/jenkins_home:/var/jenkins_home? jenkins/jenkins:2.222.3-centos
#查詢密碼
cat /data/soft/jenkins_home/secrets/initialAdminPassword
禪道
#禪道的docker版本下載
https://hub.docker.com/r/easysoft/zentao/tags
禪道版本和鏡像tag對(duì)應(yīng)關(guān)系如下:
#https://www.zentao.net/book/zentaopmshelp/405.html#0
docker pull easysoft/zentao:16.3
#sudo docker run --name [容器名] -p [主機(jī)端口]:80 --network=[網(wǎng)絡(luò)驅(qū)動(dòng)名] --ip [容器IP] --mac-address [mac地址] -v [主機(jī)禪道目錄]:/www/zentaopms -v [主機(jī)mysql目錄]:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=[數(shù)據(jù)庫密碼] -d easysoft/zentao:[鏡像標(biāo)簽]
mkdir -p /data/soft/zentao_home
chmod 777 /data/soft/zentao_home
mkdir -p /data/soft/zentao_home/zentao_mysql
chmod 777 /data/soft/zentao_home/zentao_mysql
sudo docker run --name=zentao -p 28080:80 -v /data/soft/zentao_home:/www/zentaopms -v /data/soft/zentao_home/zentao_mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=aaa123456 -d easysoft/zentao:16.3
//數(shù)據(jù)庫配置
172.17.0.1
root
aaa123456
gitlab(很占內(nèi)存)
#https://www.cnblogs.com/niceyoo/p/13057533.html
docker pull gitlab/gitlab-ce:14.7.3-ce.0
# gitlab總文件夾
mkdir -p /data/soft/gitlab_home
chmod 777 /data/soft/gitlab_home
# 配置文件
mkdir -p /data/soft/gitlab_home/etc
chmod 777 /data/soft/gitlab_home/etc
# 數(shù)據(jù)文件
mkdir -p /data/soft/gitlab_home/data
chmod 777 /data/soft/gitlab_home/data
# 日志文件
mkdir -p /data/soft/gitlab_home/log
chmod 777 /data/soft/gitlab_home/log
# 該程序?qū)?nèi)存要求有點(diǎn)高(至少2G)
sudo docker run --name=gitlab -p 38080:80 --privileged=true -v /data/soft/gitlab_home/etc:/etc/gitlab -v /data/soft/gitlab_home/data:/var/opt/gitlab -v /data/soft/gitlab_home/log:/var/log/gitlab? -d gitlab/gitlab-ce:14.7.3-ce.0
#修改[external_url 'http://106.52.63.80']
vi /data/soft/gitlab_home/etc/gitlab.rb
#修改IP和端口
vi /data/soft/gitlab_home/data/gitlab-rails/etc/gitlab.yml
#查詢管理員密碼[管理員賬號(hào):root]
cat /data/soft/gitlab_home/etc/initial_root_password
GitBlit
# 參考 https://blog.csdn.net/qq_32599479/article/details/89192287
Maven私服(nexus)-很占內(nèi)存(至少2G)
# 參考 https://www.cnblogs.com/niceyoo/p/11204143.html
docker pull sonatype/nexus3:3.37.1
# nexus3總文件夾
mkdir -p /data/soft/nexus_home
chmod 777 /data/soft/nexus_home
docker run -d --name nexus3 -p 8081:8081 -d sonatype/nexus3:3.37.1
docker cp [容器ID]:/nexus-data /data/soft/nexus_home
docker stop nexus3
docker rm nexus3
docker run -d --name nexus3 -p 8081:8081 -v /data/soft/nexus_home:/nexus-data -d sonatype/nexus3:3.37.1
等待30秒左右
#查看密碼(賬號(hào)是:admin)
cat /data/soft/nexus_home/admin.password
有時(shí)候需要等一段時(shí)間才能看到
# 參考 https://blog.csdn.net/Mister_yang/article/details/116278570
達(dá)夢(mèng)數(shù)據(jù)庫
# 參考 https://eco.dameng.com/docs/zh-cn/start/dm-install-docker.html
// 下載文件
wget -O dm8_docker.tar -c https://download.dameng.com/eco/dm8/dm8_docker.tar
//導(dǎo)入鏡像
docker import dm8_docker.tar dm8:1.0
// 查看鏡像
docker images
//啟動(dòng)鏡像
docker run -itd -p 5236:5236 --name dm8 dm8:1.0 /bin/bash /startDm.sh
//查看鏡像文件
docker exec -it [鏡像ID,通過docker ps 查看] /bin/bash
默認(rèn)賬號(hào)密碼:SYSDBA/SYSDBA
###############后面的暫時(shí)不通#####################
//創(chuàng)建掛載目錄
mkdir -p /data/soft/dm8_home
chmod 777 /data/soft/dm8_home
// 拷貝配置信息
docker cp [容器ID]:/dm8/data /data/soft/dm8_home
-- 停止并刪除容器
docker stop [容器ID]
docker rm [容器ID]
//關(guān)閉容器并正式掛載
docker run -itd -p 5236:5236 --name dm8? -v /data/soft/dm8_home/data/PROD/dm.ini:/dm8/data/PROD/dm.ini -d dm8:1.0 /bin/bash /startDm.sh
//無法掛載數(shù)據(jù)文件【DBF】
docker run -itd -p 5236:5236 --name dm8 \
-v /data/soft/dm8_home/data/PROD/dm.ini:/dm8/data/PROD/dm.ini \
-v /data/soft/dm8_home/data/PROD/MAIN.DBF:/dm8/data/PROD/MAIN.DBF \
-v /data/soft/dm8_home/data/PROD/ROLL.DBF:/dm8/data/PROD/ROLL.DBF \
-v /data/soft/dm8_home/data/PROD/SYSTEM.DBF:/dm8/data/PROD/SYSTEM.DBF \
-v /data/soft/dm8_home/data/PROD/TEMP.DBF:/dm8/data/PROD/TEMP.DBF \
-d dm8:1.0 /bin/bash /startDm.sh
nacos
# 參考 https://www.cnblogs.com/laity353/p/15338581.html
# 不兼容mysql 8.0+ 默認(rèn)5.7
//1.拉取鏡像
docker pull nacos/nacos-server:v2.1.2
docker pull nacos/nacos-server
//創(chuàng)建掛載目錄
mkdir -p /data/soft/nacos_home
chmod 777 /data/soft/nacos_home
//創(chuàng)建配置文件夾
mkdir -p /data/soft/nacos_home/resources
chmod 777 /data/soft/nacos_home/resources
//先啟動(dòng)再遷移配置文件
docker run -di -p 7307:8848 nacos/nacos-server:v2.1.2
//查看是否啟動(dòng)
netstat -an | grep 7307
//拷貝文件
docker cp [容器ID]:/home/nacos/conf/application.properties /data/soft/nacos_home/resources
//根據(jù)自己的數(shù)據(jù)庫情況更改application.properties
//關(guān)閉該docker并啟動(dòng)新的docker
docker stop [容器ID]
docker rm [容器ID]
docker? run \
--name nacos -d \
-p 7307:8848 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-v /data/soft/nacos_home/resources/application.properties:/home/nacos/conf/application.properties \
nacos/nacos-server:v2.1.2
//需要執(zhí)行的sql語句
https://note.youdao.com/s/5fvfTLPw
//報(bào)錯(cuò):發(fā)布失敗火邓。請(qǐng)檢查參數(shù)是否正確
//https://blog.csdn.net/G_x_n/article/details/127264686
修改[encrypted_data_key]字段允許為空{(diào)his_config_info丹弱、config_info_beta、config_info}
elasticsearch
//暫時(shí)沒有
執(zhí)行jar程序
//前提是需要安裝jdk容器
docker run -d --network=bridge -p 6357:6357 --restart=no --name=collector-service -v /data/webapps/:/data/webapps/ -v /data/files:/data/files -v /data/logs:/data/logs? adoptopenjdk/openjdk8 java -jar -Duser.timezone=GMT+08 /data/webapps/collector-service-0.0.1-SNAPSHOT.jar
docker run -d --network=bridge -p 80:8090 --restart=no --name=collector-web -v /data/webapps/:/data/webapps/ -v /data/files:/data/files -v /data/logs:/data/logs? adoptopenjdk/openjdk8 java -jar -Duser.timezone=GMT+08 /data/webapps/collector-web-0.0.1-SNAPSHOT.jar
//日志的路徑不正確 待優(yōu)化
//查看日志
docker logs --tail=1000 容器名稱