给Spring开发者的Docker备忘录

我最近一直在结合Docker来部署Spring Boot应用。Docker非常酷。我已经学习到很多关于它的知识。

这是我的非官方的Docker 备忘录。谨慎使用!

有任何提示和技巧?下面评论,我会尽力更新。

列出所有的Docker镜像

docker images -a

列出所有正在运行的Docker容器

docker ps

列出所有的Docker容器

docker ps -a

启动一个Docker容器

docker start <container name>

停止Docker容器

docker stop <container name>

查看正在运行的Docker容器的日志

docker logs <container name>

删除所有的Docker容器

使用-f选项也可以删除正在运行的容器。

docker rm  $(docker ps -a -q)

删除一个Docker镜像

docker rmi <image name>

删除所有的Docker镜像

docker rmi $(docker images -q)

SSH到运行的Docker容器中

好吧,不是技术上的SSH,但是这会给你一个容器中的bash shell。

sudo docker exec -it <container name> bash

使用Docker Compose构建容器

从docker-compose.yml文件的目录运行。

docker-compose build

使用Docker Compose启动一组容器

从docker-compose.yml文件的目录中使用这个命令。

docker-compose up -d

这将告诉Docker从repo获取最新版本的容器,而不是使用本地缓存。

docker-compose up -d --force-recreate

如果您使用Jenkins进行CI构建,将Docker镜像推送到其他主机,或者使用CI测试,则这可能会有问题。我从Jekins部署了一个Spring Boot Web应用,发现Docker容器没有被最新的Spring Boot artifact刷新。

#stop docker containers, and rebuild

docker-compose stop -t 1

docker-compose rm -f

docker-compose pull

docker-compose build

docker-compose up -d

跟踪使用Docker Compose运行Docker容器的日志

docker-compose logs -f

将正在运行的Docker容器保存为镜像

docker commit <image name> <name for image>

按照在Docker Compose下运行的一个容器的日志

docker-compose logs pump <name>

给Spring Boot开发者的Dockerfile的提示

将Oracle Java添加到镜像

对于CentOS / RHEL

ENV JAVA_VERSION 8u31
ENV BUILD_VERSION b13
# 升级系统
RUN yum -y upgrade
RUN yum -y install wget
# 下载并设置JAVA8
RUN wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/$JAVA_VERSION-$BUILD_VERSION/jdk-$JAVA_VERSION-linux-x64.rpm" -O /tmp/jdk-8-linux-x64.rpm
RUN yum -y install /tmp/jdk-8-linux-x64.rpm
RUN alternatives --install /usr/bin/java jar /usr/java/latest/bin/java 200000
RUN alternatives --install /usr/bin/javaws javaws /usr/java/latest/bin/javaws 200000
RUN alternatives --install /usr/bin/javac javac /usr/java/latest/bin/javac 200000

添加或者运行一个Spring Boot 可执行Jar包到镜像

VOLUME /tmp
ADD /maven/myapp-0.0.1-SNAPSHOT.jar myapp.jar
RUN sh -c 'touch /myapp.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/myapp.jar"]

相关的参考资料:

Docker入门

本文的版权归 Nikoace 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏bboysoul

自己动手做一个最小的docker镜像

其实有人学了很久还是把docker当虚拟机来使用,但是docker其实和虚拟机是完全不一样的,如何理解这一区别呢,我觉得自己动手做一个docker的hello ...

9910
来自专栏搜云库

使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上

一个用于构建和推送Docker镜像的Maven插件。

28080
来自专栏Netkiller

Docker 虚拟机之 Redis

本文节选自《Netkiller Virtualization 手札》 1.9.2. Redis 1.9.2.1. 获取 Redis 镜像 docker pull...

38190
来自专栏杨建荣的学习笔记

使用shell定制awr脚本(r3笔记第32天)

大家在做性能问题诊断的时候,awr是不可或缺的工具,使用?/rdbms/admin/awrrpt.sql可能大家使用的多了,可能有时候感觉输入参数还是有些太繁琐...

29940
来自专栏LuckQI

微服务必学习容器技术Docker系列九~生命周期管理命令

我们前面已经学习了本地容器操作以及版本信息管理,复制提交等容器命令。但是对于怎么启动执行或者操作容器还不是很清楚,今天就来学习下整个容器周期的操作从启动,到停止...

11120
来自专栏吴伟祥

Xshell如何连接Docker容器 顶

43240
来自专栏乐沙弥的世界

CRS-1006 , CRS-0215 故障一例

    安装好sles 10 sp3 + Oracle 10g RAC之后,在配置监听器时,总是提示主机bo2dbp上的监听服务已经在运行,忽略错误之后手动在b...

7530
来自专栏圣杰的专栏

.NET Core+MySql+Nginx 容器化部署

1. 引言 上两节我们通过简单的demo学习了docker的基本操作。这一节我们来一个进阶学习,完成ASP.NET Core + MySql + Nginx的容...

45180

将Spring Boot应用程序部署到Bluemix

在之前的博客文章中,我介绍了如何通过Swagger在Spring Boot应用程序中记录REST API。下面我将介绍如何将这些应用程序作为Docker容器部署...

241100
来自专栏姚俊刚的专栏

Dockerfile 分享之 SSH Server

Docker 官方网站上给出的示例里面有个 用 Dockerfile 构建 SSH Server 的例子, 我在腾讯云的主机上实验了一下, 中间添加了一些优化,...

1.7K00

扫码关注云+社区

领取腾讯云代金券