一.安装docker
1.卸载旧版本
$ sudo yum remove docker docker-common docker-selinux docker-engine
2.安装需要的软件包: yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3.设置yum源
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4.安装docker
$ sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
$ sudo yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce
5.安装成功并加入开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
6.验证安装是否成功
$ docker version
问题:
之前安装过旧版本的docker,安装新版的时候就会报错
卸载旧版本的包
$ sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
再次安装
$ sudo yum install docker-ce
二.docker上部署jar包运行
1.上传jar包
2.在jar包目录创建Dockerfile文件
FROM java:8
MAINTAINER bingo
ADD demo-0.0.1-SNAPSHOT.jar demo.jar
EXPOSE 8088
ENTRYPOINT ["java","-jar","demo.jar"]
from java:8 拉取一个jdk为1.8的docker image
maintainer 作者是dh,指令设置生成镜像的 Author 字段
demo-0.0.1-SNAPSHOT.jar 就是你上传的jar包,替换为jar包的名称
demo.jar 是你将该jar包重新命名为什么名称,在容器中运行
expose 该容器暴露的端口是多少,就是jar在容器中以多少端口运行
entrypoint 容器启动之后执行的命令,java -jar demo.jar 即启动jar
3.构建镜像
$ docker build -t my/demo .
. 表示 Dockerfile 文件在当前目录下
4.运行容器
$ docker run -d --name demo -p 8088:8088 my/demo
第一个为服务器8088端口,第二个8088为docker容器端口
springboot 应用对应的启动端口应该对应容器端口(jar是在容器中运行的)
5.查看容器是否在运行
$ docker ps
其他命令:
查看启动日志
$ docker logs --tail 300 -f demo
demo 对应的是容器的名称
启动容器
$ docker start 容器ID/容器名
启动所有容器
$ docker start $(docker ps -a -q)
停止容器
$ docker stop 容器ID/容器名
停止所有容器
$ docker stop $(docker ps -a -q)
删除容器
$ docker rm 容器ID/容器名
删除所有容器
$ docker rm $(docker ps -a -q)
删除镜像
$ docker rmi 镜像ID/镜像名
删除所有镜像
$ docker rmi $(docker images -q)
根据格式删除所有镜像
$ docker rm $(docker ps -qf status=exited)