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

相关文章

来自专栏大闲人柴毛毛

Docker入门实战(二)——Docker镜像操作

1. 什么是Docker镜像? 从源码层面来讲,Docker镜像是一个个只读文件系统,对于源码这里不作深究。我们只从逻辑角度来看,Docker镜像是一个个装有...

4057
来自专栏王小雷

创建Python数据分析的Docker镜像+Docker自定义镜像commit,Dockerfile方式解析+pull,push,rmi操作

实例解析Docker如何通过commit,Dockerfile两种方式自定义Dcoker镜像,对自定义镜像的pull,push,rmi等常用操作,通过实例创建一...

2367

将Java EE应用程序部署到Docker Swarm集群

Docker Swarm为Docker提供本地集群。 使用Docker Swarm 0.2.0的集群一文提供了对Docker Swarm的基本介绍,以及如何创建...

2849
来自专栏北京马哥教育

docker容器技术系列五:Dockerfile详解

本系列教程由旺旺知识库授权进行发布 Dockerfile是一个具有规范格式的文件,根据适当的指令和语法,我们可以构建一个自定以镜像。但Dockerfile需要...

44112
来自专栏Django Scrapy

docker 基本命令

一,关于docker镜像操作的基本命令 以镜像centos为例 查找镜像docker search centos 下载镜像docker pull cen...

33212
来自专栏姚俊刚的专栏

Dockerfile 分享之 SSH Server

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

1.6K0
来自专栏编程坑太多

『高级篇』docker之DockerSwarm调整微服务及服务配置(29)

571
来自专栏编程坑太多

跟我一起学docker(七)--Dockerfile

1775
来自专栏散尽浮华

MFS+Keepalived双机高可用热备方案操作记录

基于MFS的单点及手动备份的缺陷,考虑将其与Keepalived相结合以提高可用性。在Centos下MooseFS(MFS)分布式存储共享环境部署记录这篇文档部...

3447
来自专栏云计算

将Java EE应用程序部署到Docker Swarm集群

Docker Swarm 为Docker提供本地集群。 Docker Swarm 0.2.0版本的集群 提供了Docker Swarm 的基本介绍,以及如何创...

2807

扫码关注云+社区