一、下载安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
启动:systemctl start docker
二、配置国内镜像源
(1)在/etc/docker目录中添加daemon.json文件,内容如下:
{
"registry-mirrors": ["http://hub-mirror.c.163.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"]
}
(2)重启docker服务:
systemctl restart docker
三、编写Dockerfile
vim Dockerfile
内容如下:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD skill_training.jar /home/java/skill_training.jar
ENTRYPOINT ["java", "-jar", "-Xms256m", "-Xmx256m", "/home/java/skill_training.jar", "--server.port=8085"]
解释:
FROM openjdk:8-jdk-alpine 👉 设置基础镜像,这里我只想启动SpringBoot,所以一个Java8基础镜像足以
VOLUME /tmp 👉 将容器挂载在tmp路径下
skill_training.jar /skill_training.jar 👉 由于我的Dockerfile是和jar包在同一目录下的,所以这里是将当前目录下的jar包复制到编译生成的镜像中
ENTRYPOINT ["java", "-jar", "-Xms256m", "-Xmx256m", "/skill_training.jar", "--server.port=8085"]
👆 这是容器的入口程序,容器在启动时会执行这里编写的命令,通过该命令启动我的jar包的命令并指定SpringBoot监听端口8090
四、运行Dockerfile,生成Docker镜像
1、生成镜像
docker build -t demo1.0.0 .
注意后面有个 .
2、查看镜像
docker images
五、运行
docker run -d -v /etc/localtime:/etc/localtime:ro -e TZ=Asia/Shanghai -p 8085:8085 demo1.0.0 .
简单解释一下命令的含义:
docker run :创建一个新的容器并运行一个命令
-d:后台运行容器,并返回容器ID
-p:指定端口映射,格式为:主机(宿主)端口:容器端口
-v:挂载宿主机时间
-e:设置时区
demo1.0.0:刚刚编译成功的镜像名称
六、测试容器是否正确运行
docker ps -a
常用命令:
1、查看日志
docker logs 057e22d042a5
2、停止容器
docker stop 057e22d042a5
3、删除容器
docker rm 057e22d042a5
4、删除镜像
docker rmi 057e22d042a5
5、进入docker容器(启动状态)
docker exec -it dbb88ef17554 /bin/bash
或者:docker exec -it dbb88ef17554 /bin/sh
6、启动docker已有容器
docker start dbb88ef17554
7、查看docker挂载文件
docker inspect --format='{{json .Mounts}}' mysql5.7