idea + Docker + 阿里镜像服务打包部署

server/2025/3/4 18:17:56/

一、下载docker desktop软件

官网下载docker desktop,需要结合wsl使用

启动成功的画面(如果不是这个画面例如一直处理start或者是stop需要重新启动,不行就重启电脑)

打包成功的镜像在这里,如果频繁打包会导致磁盘空间被占满,需要定期删除旧镜像

二、阿里云创建镜像

创建镜像服务实例(个人版免费但可维护性不保证)

设置的密码用在idea的docker镜像配置和ecs上进行脚本配置

创建命名空间

在命名空间下创建镜像仓库

步骤1

步骤2

结果

三、idea配置docker

配置本地docker地址(本地的话就是tcp://127.0.0.1:2375)

创建Dockerfile文件

Dockerfile说明

idea创建docker镜像推送脚本

步骤1.

步骤2

.

有两种方法配置docker推送到阿里云镜像

1.使用AccessKey

idea将阿里云创建好的accesskey输入

配置脚本

2.使用阿里云镜像的账号密码(账号为登录账号,密码为设置的镜像访问密码)

配置脚本

四、ecs服务器上安装docker和配置docker脚本

安装教程

https://blog.csdn.net/romanticRose/article/details/101351679

常用开发docker命名

docker ps 看正在运行中的镜像

docker ps -a 看全部镜像

docker stop 停止镜像(一般是内存过大就停止)

docker start 开启镜像

docker restart 重启镜像

docker rm 删除镜像

查看单个镜像日志 docker logs -f ad-admin

查看 启动镜像至今的日志 docker logs -f -t --since="2023-01-01T00:00:00" ad-spider 查看 时间范围至今的日志 注意事项:若镜像处于stop状态,无法重新部署sh文件,必须删除rm;

//如何观察当前服务线程使用情况

1.docker exec -it ad-resolve bash 进入到对应的dokcer容器

2.top 查看占用cpu和内存的情况 找到对应的PID top -H -p 1 查看对应的线程(可以看出占用内存和cpu情况)

3.jstack 1 >> xxx.txt 打印对应的线程到Docker 本地

4.docker cp ad-resolve:/xxx.txt / 将对应的文件复制到本地进行查看

执行项目脚本

IMAGE_NAME=配置的镜像仓库地址(rregistry-vpc.cn-shenzhen.xx.aliyuncs.com/xxx/sz-admin)
CONTAINER_NAME=容器名称
#容器id
CID=$(docker ps | grep "$CONTAINER_NAME" | awk '{print $1}')
#镜像id
IID=$(docker images | grep "$IMAGE_NAME" | awk '{print $3}')

#删除容器和镜像
delete(){
    if [ -n "$CID" ]; then
        echo "exist $CONTAINER_NAME container,CID=$CID,delete docker container ..."
        docker stop $CONTAINER_NAME
        docker rm $CONTAINER_NAME
        echo "$CONTAINER_NAME container delete success"
    fi

    if [ -n "$IID" ]; then
        echo "exist $IMAGE_NAME image,IID=$IID, ,delete docker image ..."
        docker rmi -f $IID
        echo "$IMAGE_NAME image delete success"
    fi
}

run(){
    delete
    docker login --username=阿里云登录账号(不加.onaliyun.com这段) --password=镜像设置的密码 镜像地址(registry-vpc.cn-shenzhen.xx.aliyuncs.com)
    docker pull $IMAGE_NAME
    docker run --cap-add=SYS_PTRACE --name $CONTAINER_NAME -p 端口:端口 -e JAVA_OPTS='-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms2048m -Xmx2048m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC' -v /opt/dnwx/log/ad-admin:/opt/dnwx/log/ad-admin  -v /etc/localtime:/etc/localtime:ro -d  $IMAGE_NAME
}

#入口
run

四、执行脚本

当前阿里云镜像

linux执行

执行成功 docker ps 可以看到容器


http://www.ppmy.cn/server/172395.html

相关文章

macos下myslq图形化工具之Sequel Ace

什么是Sequel Ace 官方github:https://github.com/Sequel-Ace/Sequel-Ace Sequel Ace 是一款快速、易于使用的 Mac 数据库管理应用程序,用于处理 MySQL 和 MariaDB 数据库。 Sequel Ace 是一款开源项目,采用 MIT 许可证。用户可以通过 Ope…

OOM故障排查指南:生成 JVM 内存快照并使用快照分析工具定位问题

引言 OOM(Out of Memory,内存溢出) 是Java应用程序中常见的故障之一,通常表现为 java.lang.OutOfMemoryError。OOM的原因可能是内存泄漏、内存分配过大或资源竞争等。为了快速定位和解决OOM问题,开发者可以借助一些强…

Python Cookbook-2.27 从微软 Word 文档中抽取文本

任务 你想从 Windows 平台下某个目录树中的各个微软 Word 文件中抽取文本,并保存为对应的文本文件。 解决方案 借助 PyWin32 扩展,通过COM 机制,可以利用 Word 来完成转换: import fnmatch,os,sys,win32com.client wordapp w…

40岁开始学Java:Java中单例模式(Singleton Pattern),适用场景有哪些?

在Java中,单例模式(Singleton Pattern)用于确保一个类只有一个实例,并提供全局访问点。以下是详细的实现方式、适用场景及注意事项: 一、单例模式的实现方式 1. 饿汉式(Eager Initialization) …

WeakAuras Lua Script TOC

十字军的试炼,刺骨之寒,插件,团队高亮提示 WA-Script字符串: !WA:2!TRZAZTX11PLWVeKJJinRQTIscmTScPenkbPeRTNWKcqckbl(YaGKY6XaSl2lWUwG7UE3f8HsDQnRQTCDSDmRJTgBpojCC80jXX2f2v2wtI)G6FGZWPJh2V0pOXK2AM(KTnoTnzCp37DxGfGlOivt…

【子网掩码计算器:Python + Tkinter 实现】

子网掩码计算器:Python Tkinter 实现 引言代码功能概述代码实现思路1. 界面设计2. 功能实现3. 事件处理 子网掩码计算器实现步骤1. 导入必要的库2. 定义主窗口类 SubnetCalculatorApp3. 创建菜单栏4. 创建界面组件5. 判断 IP 地址类别6. 计算子网信息7. 其他功能函…

leetcode 76. 最小覆盖子串

题目如下 数据范围 首先本题可以利用不定长的滑动窗口思想不断枚举右端同时检查窗口是否符合题意。 但是这样做每次新枚举一个窗口都要检查造成了很多重复计算。 我们发现其实每次变化要么是少一个字符要么是多一个字符而中间的根本没变。 所以,我们令字符串t出…

Linux:TCP和守护进程

一、TCP网络程序 1.1 TCP服务端 成员变量: int _listensock; // 监听的文件描述符 string _ip; // 服务端ip uint16_t _port; // 端口号 bool _isrunning; // 服务器是否在运行 1.1.1 InitServer-创建服务端 1、创建套接字socket socket()打开一个网络通讯端…