Docker - 创建并运行一个docker(springboot)容器
1、首先,你要有一个docker环境:
# docker version
Client:
Version: 1.13.1
API version: 1.26
Package version: docker-1.13.1-75.git8633870.el7_5.x86_64
Go version: go1.9.2
Git commit: 8633870/1.13.1
Built: Wed Sep 12 10:56:54 2018
OS/Arch: linux/amd64
Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Package version: docker-1.13.1-75.git8633870.el7_5.x86_64
Go version: go1.9.2
Git commit: 8633870/1.13.1
Built: Wed Sep 12 10:56:54 2018
OS/Arch: linux/amd64
Experimental: false
2、使用spring-boot简单写一个http接口(供测试),并打成一个常规的jar,待用;
demo-0.0.1-SNAPSHOT.jar(配置文件放在项目内部resources/下)
3、编写Dockerfile文件,如下:
# Docker image for springboot file run
# VERSION 0.0.1
# Author: Springboot Docker
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER Springboot Docker
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD demo-0.0.1-SNAPSHOT.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
4、将demo-0.0.1-SNAPSHOT.jar和Docker放在同一个文件夹下;
5、docker build -t http-server:v1.0.1 . #创建镜像到本地(注意最后面的 . 代表当前目录的Dockerfile文件)
6、docker run -d -p 12001:12000 --name httpserver http-server:v1.0.1 #启动容器 &使用 --name 标记可以为容器自定义命名 注:容器之间默认都是可以相互连接的
7、docker ps |grep httpserver #查看已经启动的httpserver容器
81b3096b96c8 http-server:v1.0.1 "java -Djava.secur..." 2 days ago Up 2 days 0.0.0.0:12001->12000/tcp http
8、docker exec -t -i ID /bin/bash #进入容器
9、docker logs -f ID #查看容器的实时日志
10、docker stop ID #停止容器(start/kill/stop/restart)
11、docker rm ID #删除容器
12、docker rmi ID #删除镜像
13、docker images #查看所有的本地镜像