前言:
之前研究过一段时间的 docker ,后来长时间没用就忘记了不少,这里重新整理一下,方便以后查询。本博客适用于有开发基础的同学,默认大家了解 docker 和 SpringBoot 。
一、安装 docker
建议使用yum安装,当然过程可能会有问题(centos8 就有问题),有问题问度娘,都不是大事,安装好以后启动。
安装docker
yum install docker-ce
启动docker
service start docker
关闭docker
service stop docker
docker状态
service status docker
二、镜像相关命令
1.首先查询自己需要的镜像,本质上是去 docker hub 上去查询的,也可以直接去 Docker Hub 查询,上面有拉取镜像的命令(私库请另外配置)
docker search [查询关键字]
本机查询如下:
去 docker hub 上看一下第一个镜像,里面会有详细信息,还有拉取的命令
其它跟镜像相关的命令:
查看本机镜像:
docker images 或者 docker image ls
删除本机镜像
docker rmi [镜像ID] 或者 docker image rm [镜像ID]
三、容器相关命令
常规后台启动(-d:后台启动,-i:可交互,-t:支持终端登录)
docker run -idt [镜像ID] /bin/bash
容器命名(--name)、修改端口映射(-p),挂载目录(-v)
docker run --name [容器名字] -itd -p [宿主机port]:[容器port] [镜像ID] /bin/bash
查看活跃的容器
docker ps
查看所有容器(包括不活跃的)
docker ps -a
进入容器(attach命令不建议使用,退出后容器会自动关闭)
docker exec -it [容器ID] bash
docker exec -it [容器ID] bash -c [容器中需要执行的一系列命令]
停止容器
docker stop [容器ID]
启动容器
docker start [容器ID]
查看容器详细信息
docker inspect [容器ID]
容器生成镜像(参数:-a:作者,-m:提交信息)
docker commit [参数] [容器ID] [新镜像名:TAG]
四、记录启动jar的整个流程
上面只写了一些命令,可能有些乱,下面就详细描述一下怎么启动一个 SpringBoot 应用。
1. 拉取镜像
docker pull roboxes/centos8:latest
2.SpringBoot 应用拷贝到linux机器某一目录(jdk1.8.0_251目录是准备的jdk环境,需要拷贝到容器里面用于启动 jar)
3.编写DockerFile(如果你有一个jdk的镜像,这步可以没有)
FROM roboxes/centos8:latest
MAINTAINER xxx@foxmail.com
COPY jdk1.8.0_251/* /usr/java/jdk1.8.0_251/
ENV JAVA_HOME=/usr/java/jdk1.8.0_251
ENV PATH=$PATH:${JAVA_HOME}/bin
CMD ["java","-version"]
TIPS:COPY 和 ADD 命令只能把 DockerFile 同级别的文件或目录拷贝到容器里面
关于 DockerFile 可以查阅其它笔记
4.使用DockerFile生成新镜像
docker build -t centos8-jdk8:1.0 .
5.查看镜像并启动容器
镜像查看命令:
docker images
docker run 是运行容器命令,-v是目录挂载参数,参见前述:三、容器相关命令
6.查看容器并启动 jar 包
docker exec 是进入容器命令,-c后面是进入容器需要执行的命令,参见前述:三、容器相关命令
7.查看启动的进程
在宿主机使用ps查看;进入容器以后也可以查看到该进程
8.完成
五、其它
宿主机ip:172.17.0.1
容器ip:需要使用 docker insect 命令查看