在本文中,我们将详细介绍jconsole+jmx实现远程监控docker容器运行情况的各个方面,并为您提供关于dockerjvm监控的相关解答,同时,我们也将为您带来关于DockerCompose保持
在本文中,我们将详细介绍jconsole+jmx 实现远程监控 docker 容器运行情况的各个方面,并为您提供关于docker jvm监控的相关解答,同时,我们也将为您带来关于Docker Compose 保持容器运行、Docker Compose保持容器运行、Docker创建MySQL容器并实现远程访问、docker启动全部容器运行所有容器的有用知识。
本文目录一览:- jconsole+jmx 实现远程监控 docker 容器运行情况(docker jvm监控)
- Docker Compose 保持容器运行
- Docker Compose保持容器运行
- Docker创建MySQL容器并实现远程访问
- docker启动全部容器运行所有容器
jconsole+jmx 实现远程监控 docker 容器运行情况(docker jvm监控)
Dockerfile 配置
RUN mkdir /usr/local/secret-jmx
EXPOSE 20019
CMD java -Xmx1024m -Xms256m \
-Djava.rmi.server.hostname=''1.2.3.4'' \
-Dcom.sun.management.jmxremote.port=20019 \
-Dcom.sun.management.jmxremote.rmi.port=20019 \
-Dcom.sun.management.jmxremote=true \
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.password.file=/usr/local/secret-jmx/jmxremote.password \
-jar ./${JAR_FILE_NAME} --spring.profiles.active=dev
注意:
- 指定 EXPOSE 端口号和 jmx 配置的一致
- 这里的 hostname 指的是宿主机的外网 ip
- 需要指定 jmxremote.rmi.port
- 注意 jmxremote.password 的权限要设置为 600
运行 docker
docker run -itd -p 20019:20019 --name test-tools-dev -v /home/test/secret/jmx:/usr/local/secret-jmx --restart=always test-tools-dev-image
注意 volume 设置
Docker Compose 保持容器运行
我想用 docker-compose 启动一个服务并保持容器运行,这样我就可以通过 ‘docker inspect’ 获取它的 IP
地址。但是,容器总是在启动后立即退出。
我尝试在 docker-compose.yml 中添加“command: [“sleep”, “60”]”
和其他内容,但是每当我添加带有“command:…”的行时,我都无法调用“docker-compose
up”因为我会收到消息“无法启动容器.....系统错误:无效字符’k’正在寻找值的开头”
我还尝试将“CMD sleep 60”等添加到 Dockerfile 本身,但这些命令似乎没有被执行。
有没有一种简单的方法可以让容器保持活力或解决我的一个问题?
编辑:这是我要运行的 Compose 文件:
version: ''2''services: my-test: image: ubuntu command: bash -c "while true; do echo hello; sleep 2; done"
它工作正常如果我在 OS X 下使用 docker-compose 启动它,但如果我在 Ubuntu 16.04 下尝试相同,它会给我上面的错误消息。
如果我尝试使用 Dockerfile 的方法,Dockerfile 看起来像这样:
FROM ubuntu:latestCMD ["sleep", "60"]
这似乎没有做任何事情
编辑 2:我必须纠正自己,结果发现 Dockerfile 和 docker-compose.yml 存在同样的问题:每次我将“CMD …”添加到
Dockerfile 或添加“command …”到撰写文件,我得到了无效字符的错误。如果我删除这两个命令,它会完美运行。
答案1
小编典典要在使用 启动容器时保持容器运行,请docker-compose
使用以下命令
command: tail -F anything
在上面的命令中,最后一部分anything
应该按字面意思包含,并且假设容器中不存在这样的文件,但是带有-F
选项(大写-F
不要混淆,-f
相反,如果找不到文件,它将立即终止)
该tail
命令将永远等待文件anything
出现。一个永远等待的过程基本上是我们所需要的。
所以你的 docker-compose.yml 变成
version: ''2''services: my-test: image: ubuntu command: tail -F anything
您可以使用以下命令运行 shell 以进入容器
docker exec -i -t composename_my-test_1 bash
容器前面composename
的名称在哪里。docker-compose
Docker Compose保持容器运行
我想使用docker-compose启动服务并保持容器运行,以便我可以通过“ docker inspect”获取其IP地址。但是,容器始终在启动后立即退出。
我试图在docker-compose.yml中添加“ command:[“ sleep”,“ 60”]“和其他内容,但是每当我添加带有”
command:…“的行时,我都无法调用” docker-compose
up“因为我将收到消息“无法启动容器.....系统错误:无效的字符’k’寻找值的开始”
我还尝试向Dockerfile本身添加“ CMD sleep 60”和诸如此类的东西,但是这些命令似乎并未执行。
有没有一种简单的方法来保持容器的寿命或解决我的问题之一?
编辑:这是我要运行的撰写文件:
version: ''2''services: my-test: image: ubuntu command: bash -c "while true; do echo hello; sleep 2; done"
如果我在OS X下以docker-compose开头,则工作正常,但如果在Ubuntu 16.04下尝试相同操作,则会出现上述错误消息。
如果我尝试使用Dockerfile的方法,则Dockerfile如下所示:
FROM ubuntu:latestCMD ["sleep", "60"]
哪个似乎什么都没做
编辑2:我必须纠正自己,原来这是Dockerfile和docker-compose.yml的相同问题:每次我向Dockerfile添加“ CMD
…”或向其中添加“ command …”撰写文件时,出现错误并显示无效字符。如果我删除了这两个命令,它会完美地工作。
答案1
小编典典要使容器在启动时保持运行docker-compose
,请使用以下命令
command: tail -F anything
所以你的docker-compose.yml变成
version: ''2''services: my-test: image: ubuntu command: tail -F anything
您可以使用以下命令运行外壳程序以进入容器
docker exec -i -t composename_my-test_1 bash
容器前面composename
的名称在哪里docker-compose
。
Docker创建MySQL容器并实现远程访问
Docker配置MysqL容器
拉取MysqL镜像
docker pull MysqL:5.6
有可能会因为网络问题失败,重复尝试。
创建容器
docker run -d --name selfdefinename -p 3306:3306 -e MysqL_ROOT_PASSWORD=rw MysqL:5.6
-d 后台运行,--name 设置名称 selfdefinename 是用户自定义的容器名称,-p 设置端口映射,第一个3306是当前主机的端口,第二个3306指容器中的端口;-e 设置root用户密码为rw;最后的MysqL:5.6 可以用imageID代替,代表用于创建容器的镜像。
注:值得注意的是,如果主机已经安装了MysqL,那么它会占用3306端口,docker中的MysqL将无法正常启动。
解决方式:
1.卸载或暂停主机的MysqL服务。
#暂停主机上的MysqL
systemctl stop MysqLd
2.创建容器时,修改docker容器的端口映射
docker run -d --name selfdefinename -p 10086:3306 -e MysqL_ROOT_PASSWORD=rw MysqL:5.6
10086是容器外部端口号,只要不被占用可以任意指定。3306是容器内部端口,MysqL在不更改其配置文件时默认只会监听3306端口。
运行容器
一般创建好容器后容器会自动运行
#运行容器
docker start 容器名或容器ID
允许远程访问
#首先要进入容器内部
docker exec -it 容器名或容器ID
#进入MysqL
MysqL -u root -p
#授权
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "rw";
flush privileges;
#退出
exit
exit
Docker常用命令
新建容器
docker run -d --name 自定义容器名 镜像ID或镜像名
展示当前运行的容器
docker ps
展示所有容器
docker ps -a
展示所有本地镜像
docker images
运行容器
docker start 容器名或容器ID
停止运行容器
docker stop 容器名或容器ID
删除容器
docker rm -f 容器名或容器ID
进入容器内容bash
docker exec -it 容器名或容器ID bash
#退出容器命令:exit
关闭docker服务
systemctl stop docker
docker启动全部容器运行所有容器
setenforce 0
systemctl stop firewalld
service docker start
docker start $(docker ps -a | awk ''{ print $1}'' | tail -n +2)
今天关于jconsole+jmx 实现远程监控 docker 容器运行情况和docker jvm监控的分享就到这里,希望大家有所收获,若想了解更多关于Docker Compose 保持容器运行、Docker Compose保持容器运行、Docker创建MySQL容器并实现远程访问、docker启动全部容器运行所有容器等相关知识,可以在本站进行查询。
本文标签: