1、单机(非docker)启动java程序:nohup java -jar springbootstudy.jar
2、启动docker:service docker start
(构建好以后,就不需要了:docker build -f Dockerfile -t springboot-jar .)
(构建好以后,就不需要了:docker build -f Dockerfilelog -t springboot-log-jar .)
3、启动docker里面的容器:
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
docker run -p 8082:8082 -d springboot-jar (指定端口)
测试: http://172.19.211.109:8082/springbootstudy/hello
如果是,docker run -p 8001:8082 -d springboot-jar (指定端口)
http://172.19.211.109:8001/springbootstudy/hello
docker run -p 9096:9096 -d springboot-log-jar
测试: http://172.19.211.109:9096/hellolog
sh get-docker.sh
sudo service docker start
docker:
sudo systemctl status docker
换成下面这样
sudo /etc/init.d/ docker status
或者
sudo service docker status
4、docker ps 列出所有在运行的容器信息
5、ubtune 本机操作,查找日志: find . -name 'spring.log' -ls
6、查看docker中容器日志:docker logs -f -t --tail 100 31d1ed582afb (容器id)
2023-04-22T15:41:30.076856077Z 2023-04-22 [http-nio-9096-exec-1] DEBUG com.atguigu.springboot.HelloController - hello,debug
2023-04-22T15:41:30.077217839Z 2023-04-22 [http-nio-9096-exec-1] INFO com.atguigu.springboot.HelloController - hello info
2023-04-22T15:41:30.077752886Z 2023-04-22 [http-nio-9096-exec-1] WARN com.atguigu.springboot.HelloController - hello warn
2023-04-22T15:41:30.078258278Z 2023-04-22 [http-nio-9096-exec-1] ERROR com.atguigu.springboot.HelloController - hello error
2023-04-22T15:41:30.087428991Z 2023-04-22 [http-nio-9096-exec-1] ERROR com.atguigu.springboot.HelloController - exeption str
7、 停止docker容器: docker stop 31d1ed582afb
8、删除image id : docker rmi 7b96f5b4eb19 (如果构建过容器,提示删不掉)
Error response from daemon: conflict: unable to delete 7b96f5b4eb19
(must be forced) - image is being used by stopped container a983740aebc5
docker rmi -f 7b96f5b4eb19 强制
9、数据卷挂载
VOLUME /tmp
VOLUME /spring/log
定义了一个log的持久化存储,这样SpringBoot应用在容器里运行时,我们可以用命令行进入容器内部,查看log文件夹下的日志文件。
在SpringBoot应用的application.properties配置文件里,设置日志文件的输出目录为/spring/log
使用下面的命令行进入镜像:
docker exec -it 56b861aff898 /bin/sh
(56b861aff898 为 64位的SHA256字符串前面12位)
这样就在Docker镜像里查看SpringBoot应用运行时生成的日志文件:
(ctrl + D 退出)
参考链接:运行在Docker里的SpringBoot应用,如何查看记录在文件系统的日志 - 腾讯云开发者社区-腾讯云 (tencent.com)
10、在 Docker 1.10 之前,图像id是随机的,但从那时起,它们是使用哈希(当前为 SHA256
确定性地生成的。每个图像层都有一个摘要,它是其内容的哈希。
图像 ID 是一个不同的摘要,从配置中散列 - 其中包括其层的摘要。
要识别文件的唯一性,就是摘要算法。
11、 md5sum spring-boot-log.jar, sha256sum spring-boot-log.jar。 校验文件完整性;
12、从容器内拷贝文件到主机上
• 容器→主机
• docker cp 容器ID:容器内路径 目的主机路径
docker cp 7c4a8204eeb7:/spring/log/spring.log /usr/local
13、从宿主机拷贝到容器:
docker cp /usr/local/test.log 7c4a8204eeb7:/root
进入容器查看:docker exec -it 7c4a8204eeb7 /bin/sh
14、容器导出导入:
导出:docker export 7c4a8204eeb7 > abc.tar.gz
解压:tar -xvf abc.tar.gz
导入:
参考:docker镜像的导入导出_docker__c G-DevPress官方社区 (csdn.net)