编写dockerfile

#以openjdk:8-jre为基础镜像运行JAR包
FROM openjdk:8-jre
#WORKDIR指令用于挂载容器根目录, 容器启动时执行的命令会在该目录下执行,产生的文件与运行路径都以此为根路径。
WORKDIR /opt/docker/images/metabase/
#需要运行的JAR包放到容器根目录
ADD config.jar config.jar
# 运行的其他文件也同样复制转移
#ADD libs /libs
#暴露容器端口为3000 Docker镜像告知Docker宿主机应用监听了3000端口
EXPOSE 3000
#容器启动时执行的命令,
CMD java -jar config.jar


在linux系统中,docker可能是用sudo或管理员安装的,因此如果非root用户,请加上sudo命令前缀,否则会提示无权限

构建镜像

docker build -f DockerFile  -t  test/config:1.0.0  . 

-f 可以指定配置文件路径, docker默认读取本目录的Dockerfile文件,如果不同名,需要指定

构建ing.png

查询与运行镜像

使用以下命令查询已构建或导入的镜像

docker images

使用run命令运行已构建的镜像,-p将本机443端口映射到容器的3000端口,运行时,可以访问本机的443端口来访问容器的3000端口

docker run -d -p 443:3000  test/config:1.0.0 

每运行一次都会新增一个容器,因此如果一个镜像已经运行了一次,就会创建容器。可以使用以下命令查询所有可运行的容器

docker ps -a # 会打印所有容器,显示CONTAINER ID,即容器ID,是管理容器的标识

-a指定显示所有容器,默认显示正在运行的容器

启动与停止容器

启动容器

docker start containerId

docker start 有两个参数。

-i 以交互模式启动容器,用户可以与容器中的程序进行输入输出交互。

-t 以附加进程启动

查看日志

docker logs containerId

停止容器

docker stop -t=10 containerId

docker stop有一个参数-t,关闭容器的时间限制,默认为10s,超过时间未关闭会使用kill强制结束

docker kill containerId # 强制关闭容器

重启一个容器

docker restart containerId