docker 部署java程序手册(国内)
docker可用镜像源地址
配置文件的位置和截图:

{
"data-root": "/data/docker",
"dns": [
"8.8.8.8",
"8.8.4.4"
],
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.m.daocloud.io",
"https://docker.xuanyuan.me",
"https://mirror.ccs.tencentyun.com"
],
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
},
"insecure-registries": ["registry.xxx.com:5000"]
}
配置完以后docker search xxx是不能使用的,直接docker pull xxx就可以.

搜索的话可以借用于一些网站就可以.如:

docker可视化--Portainer:
拉取最新版本:
docker pull portainer/portainer-ce:2.40.0
启动:
docker run -d --restart=always \
--name="portainer" \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /data/portainer/data:/data \
-v /data/portainer/public:/public \
portainer/portainer-ce:2.40.0
汉化:
https://github.com/eysp/portainer-ce/releases
访问信息:http://127.0.0.1:9000


汉化界面:

腾讯云提供的公有镜像地址:

milvus的镜像地址:
严格按照官网的文档操作即可:
https://milvus.io/docs/zh/install_standalone-docker.md
运行成功界面截图:

开启了用户名和密码后官网提供的界面不能使用,需要安装attu
-- 拉取最新的镜像
docker pull zilliz/attu:v2.6.5
-- 运行窗口
docker run -d --restart=always \
--name="attu" \
-p 8000:3000 \
zilliz/attu:v2.6.5
attu访问地址:http://192.168.32.163:8000/#/
默认的用户名:root
密码:Milvus

redis-stack
镜像下载:
docker pull redis/redis-stack:7.4.0-v8
docker安装:
docker run -d --restart=always --name redis-stack -p 6379:6379 -p 8001:8001 -v /data/redis-stack/data/:/data -v /data/redis-stack/local-redis-stack.conf:/redis-stack.conf -e REDIS_ARGS="--requirepass 123456" redis/redis-stack:7.4.0-v8
访问界面:

安装nacos
|
拉取镜像命令: docker pull nacos/nacos-server:v2.5.2 |
|
启动窗口命令:开启token校验 docker run --name nacos-standalone --network=host -m 1g \ -e MODE=standalone \ -e TZ=Asia/Shanghai \ -e NACOS_APPLICATION_PORT=20014 \ -e NACOS_AUTH_ENABLE=true \ -e NACOS_AUTH_TOKEN=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg \ -e NACOS_AUTH_IDENTITY_KEY=example \ -e NACOS_AUTH_IDENTITY_VALUE=example \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=xxx \ -e MYSQL_SERVICE_DB_NAME=xxx \ -e MYSQL_SERVICE_USER=xxx \ -e MYSQL_SERVICE_PASSWORD=xxx \ -e MYSQL_SERVICE_DB_PARAM="characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true" \ -d nacos/nacos-server:v2.5.2 |
安装nginx
|
#拉取镜像 docker pull nginx:1.30.0 |
|
#启动容器命令 docker run --name nginx -d --network=host -m 300m --ulimit nofile=65536:65536 \ -v /data/nginx/nginx.conf:/etc/nginx/nginx.conf \ -v /data/nginx/conf.d/:/etc/nginx/conf.d/ \ -e TZ=Asia/Shanghai \ nginx:1.30.0 |
|
# ftp docker run --name nginx -d --network=host -m 300m --ulimit nofile=65536:65536 \ -v /data/nginx/nginx.conf:/etc/nginx/nginx.conf \ -v /data/nginx/conf.d/:/etc/nginx/conf.d/ \ -v /data/vsftpd/ftp/:/data/vsftpd/ftp/ \ -e TZ=Asia/Shanghai \ nginx:1.30.0 |
安装zookeeper:
|
#拉取镜像 docker pull zookeeper:3.9 |
|
#启动容器命令 docker run -d --name zookeeper -m 500m \ --ulimit nofile=65536:65536 \ -p 2181:2181 \ -v /data/zookeeper/data:/var/lib/zookeeper/data \ -v /data/zookeeper/logs:/var/lib/zookeeper/log \ -e TZ=Asia/Shanghai \ zookeeper:3.9 |
安装kafka:
|
#拉取镜像 docker pull confluentinc/cp-kafka:7.6.0 |
|
#启动容器命令 docker run -d --name kafka \ --ulimit nofile=65536:65536 \ -p 9092:9092 \ -v /data/kafka/data:/var/lib/kafka/data \ -v /data/kafka/logs:/var/lib/kafka/logs \ -e KAFKA_BROKER_ID=1 \ -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \ -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://xxx:9092 \ -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \ -e KAFKA_LOG_DIRS=/var/lib/kafka/logs \ -e KAFKA_LOG_RETENTION_HOURS=168 \ -e KAFKA_LOG_SEGMENT_BYTES=1073741824 \ -e TZ=Asia/Shanghai \ --link zookeeper \ confluentinc/cp-kafka:7.6.0 |

安装ftp
|
#拉取镜像 docker pull fauria/vsftpd |
|
#启动容器命令 docker run -d -m 500m \ --ulimit nofile=65536:65536 \ --name vsftpd \ --restart=always \ --net=host \ -e FTP_USER=xx \ -e FTP_PASS=xx \ -e PASV_ADDRESS=xx \ -e PASV_MIN_PORT=21100 \ -e PASV_MAX_PORT=21110 \ -v /data/vsftpd/ftp:/home/vsftpd/tmkj \ -v /data/vsftpd/logs:/var/log \ -e TZ=Asia/Shanghai \ fauria/vsftpd |
修改配置文件,并且修复:vsftpd.conf:
|
# Run in the foreground to keep the container running: background=NO # Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=NO # Uncomment this to allow local users to log in. local_enable=YES ## Enable virtual users guest_enable=YES ## Virtual users will use the same permissions as anonymous virtual_use_local_privs=YES # Uncomment this to enable any form of FTP write command. write_enable=YES ## PAM file name pam_service_name=vsftpd_virtual ## Home Directory for virtual users user_sub_token=$USER local_root=/home/vsftpd/$USER # You may specify an explicit list of local users to chroot() to their home # directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). chroot_local_user=YES # Workaround chroot check. # See https://www.benscobie.com/fixing-500-oops-vsftpd-refusing-to-run-with-writable-root-inside-chroot/ # and http://serverfault.com/questions/362619/why-is-the-chroot-local-user-of-vsftpd-insecure allow_writeable_chroot=YES ## Hide ids from user hide_ids=YES ## Enable logging xferlog_enable=YES xferlog_file=/var/log/vsftpd/vsftpd.log ## Enable active mode port_enable=YES connect_from_port_20=YES ftp_data_port=20 ## Disable seccomp filter sanboxing seccomp_sandbox=NO ### Variables set at container runtime pasv_address=xxx pasv_max_port=xx pasv_min_port=xx pasv_addr_resolve=NO pasv_enable=YES file_open_mode=0666 local_umask=077 xferlog_std_format=NO reverse_lookup_enable=YES pasv_promiscuous=NO port_promiscuous=NO listen_port=10021 |
配置文件复制
|
# 从容器复制配置文件 docker cp vsftpd:/etc/vsftpd/vsftpd.conf /data/vsftpd/config/vsftpd.conf # 修改后再复制回容器 docker cp /data/vsftpd/config/vsftpd.conf vsftpd:/etc/vsftpd/vsftpd.conf |

安装xxl-job

开发人员需要操作
Dockerfile:
# base image - 使用稳定的镜像源
FROM eclipse-temurin:21-jre-jammy
# Label
LABEL maintainer="xuxueli"
# set params
ENV PARAMS=""
# set timezone
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# copy jar
ADD target/xxl-job-admin-*.jar /app.jar
# command
# log home: -e LOG_HOME=/data/applogs
# jvm options: -e JAVA_OPTS="-Xms128m -Xmx128m"
# app params: -e PARAMS="--server.port=8080"
ENTRYPOINT ["sh","-c","java ${LOG_HOME:+-DLOG_HOME=$LOG_HOME} -jar $JAVA_OPTS /app.jar $PARAMS"]
打包docker镜像
|
docker build -t xxl-job-admin:3.3.2 -f Dockerfile . |
|
导出镜像 docker save xxl-job-admin:3.3.2 -o xxl-job-admin-3.3.2.tar |
|
导入镜像: docker load -i xxl-job-admin-3.3.2.tar |
运维人员操作
|
#拉取镜像 docker pull xuxueli/xxl-job-admin:3.3.2 |
|
#启动容器命令 docker run -d -m 500m --restart=always --network=host \ --ulimit nofile=65536:65536 \ -e TZ=Asia/Shanghai \ -e SERVER_PORT=30100 \ -e SPRING_DATASOURCE_URL="jdbc:postgresql://xx:xx/erp?currentSchema=xxx" \ -e SPRING_DATASOURCE_USERNAME="xx" \ -e SPRING_DATASOURCE_PASSWORD="xx" \ -e SPRING_DATASOURCE_DRIVER-CLASS-NAME="org.postgresql.Driver" \ -e XXL_JOB_ACCESSTOKEN="xx" \ --name xxl-job-admin \ xxl-job-admin:3.3.2 |
安装应用程序
环境变量:
将以下添加到环境变量中
|
export NACOS_SERVER=xxx export NACOS_NAMESPACE=xx export NACOS_USERNAME=xx export NACOS_PASSWORD=xx export NACOS_GROUP=DEFAULT_GROUP export LOCAL_IP=$(hostname -I | awk '{print $1}' |
操作完之后需要:
|
# 使环境变量生效 source /etc/profile |
|
# 查看环境变量 echo $NACOS_SERVER |
确保
|
echo $NACOS_SERVER |
|
以上命令可以输出正确的nacos地址 |
env文件:
JAVA_TOOL_OPTIONS=-Dlogging.path=logs/ -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+DisableExplicitGC -Djava.net.preferIPv4Stack=true-Djava.security.egd=file:/dev/./urandom
docker启动脚本
docker run -m 2g -d --restart unless-stopped --name xxx --network=host \
--env-file /data/app/xxx/boot2docker/env \
--ulimit nofile=65536:65536 \
-u $(id -u):$(id -g) \
-e DUBBO_IP_TO_REGISTRY=$LOCAL_IP \
-e NACOS_SERVER \
-e NACOS_USERNAME \
-e NACOS_PASSWORD \
-e SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=xxx \
-e SPRING_CLOUD_NACOS_CONFIG_USERNAME=xxx\
-e SPRING_CLOUD_NACOS_CONFIG_PASSWORD=xxx \
-e SPRING_CLOUD_NACOS_CONFIG_NAMESPACE=xxx\
-e SPRING_CLOUD_NACOS_CONFIG_GROUP=DEFAULT_GROUP \
-e SPRING_CLOUD_NACOS_DISCOVERY_SERVER_ADDR=x\
-e SPRING_CLOUD_NACOS_DISCOVERY_USERNAME=xxx\
-e SPRING_CLOUD_NACOS_DISCOVERY_PASSWORD=xxx \
-e SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE=xxx\
-e SPRING_CLOUD_NACOS_DISCOVERY_GROUP=DEFAULT_GROUP \
-e LANG=C.UTF-8 \
-e TZ=Asia/Shanghai \
-v /data/app/xxx/config:/workspace/config \
-v /data/app/xxx/logs:/workspace/logs \
xxxx/xxx/xxx:xxx
docker相关操作:
-- docker导出
docker save xxx/xxx/xxx -o xxx.tar
-- docker导入
docker load -i xxx.tar
更多推荐


所有评论(0)