给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 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

MSBuild Community Tasks Project

MSBuild 是 Microsoft 和 Visual Studio 的新生成平台。 MSBuild 概念  解释属性、任务、目标和其他 MSBuild...

1728
来自专栏小鹏的专栏

ubuntu下CMake编译生成动态库和静态库,以OpenTLD为例。

opencv2.4.8,下载:Here. ubuntu下CMake编译生成动态库(.so)和静态库(.a),以OpenTLD为例。 直接看CMakeLists....

26410
来自专栏三木的博客

基于Jenkins和Koji的代码管理及构建系统

<h1>Summary</h1> Currently, we KVM team are maintaining the code repository of t...

1807
来自专栏康怀帅的专栏

在开发环境使用 Docker

本文是对官方文档的总结与备注。 官方文档:https://docs.docker.com/develop/ 根据官方文档的层次,分为 容器 (Container...

5484
来自专栏c#开发者

解决:TF30170: Microsoft.ProjectCreationWizard.WorkItemTracking

Error TF30170: The plugin Microsoft.ProjectCreationWizard.WorkItemTracking fail...

3517
来自专栏施炯的IoT开发专栏

Application Architecture Guide 2.0 - CH 19 - Mobile Applications(6)

本文翻译第19章的最后部分,包括"Technology Considerations"中的".NET Compact Framework"、"Windows M...

1658
来自专栏张善友的专栏

Entity Framework Code-First 文章汇集

为了支持以设计为中心的开发流程,EF4 还更多地支持以代码为中心 (code-centric) ,我们称为代码优先的开发,代码优先的开发支持更加优美的开发流程,...

1936
来自专栏码匠的流水账

聊聊jesque在redis中的数据结构

这个是标记每个namespace的worker的状态,是个string类型,存储事件产生时间

381
来自专栏小樱的经验随笔

Codeforces Round #411 (Div. 2)(A,B,C,D 四水题)

A. Fake NP time limit per test:1 second memory limit per test:256 megabytes inpu...

2726
来自专栏技术博文

开启phpMyAdmin高级功能的设置方法

开启phpMyAdmin高级功能的设置方法 注:本文基于phpMyAdmin5.5 登录到phpMyAdmin以后,在主界面的底部,我们发现两条提示信息: 一...

2915

扫码关注云+社区