mvn clean package -Dmaven.test.skip=true
# Docker image for springboot file run
# VERSION 0.0.1
# Author:
# 基础镜像使用java
FROM openjdk:11.0.7
# 作者
MAINTAINER frank<742740345@qq.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为xx.jar
ADD app.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
将上面准备好的jar和dockerfile文件拖入Ubuntu系统中
在Ubuntu中新建文件夹docker,将上面的文件拖入该文件夹下
# -t 镜像的名字及标签
# . 打包当前目录
# -f /path/to/a/Dockerfile . 指定Dockerfile文件的位置
$ sudo docker build -t app .
$ sudo docker images
# 10002为部署后实际代理端口,10001 为你程序的端口
$ sudo docker run -d --name app -p 10002:10001 app
docker ps -a
# 先删除容器
docker rm {id}
# 再删除镜像
docker rmi -f {name}
-d参数是让容器后台运行
-p 是做端口映射,此时将服务器中的10002(docker中的启动的端口)端口映射到容器中的10001(是springboot项目的启动的端口)端口
xxx 是jar名称 (不包含.jar 后缀)
在外面的网址访问链接:http://${ip}:10002/
由于docker search命令只能查找出是否有该镜像,不能找到该镜像支持的版本,所以我们需要通过docker hub来搜索支持的版本。
进入docker hub的官网,地址:https://hub.docker.com
然后搜索需要的镜像
查看镜像支持的版本
进行镜像的下载操作:
docker pull nginx:1.17.0
docker images
docker rmi java:8
docker rmi -f java:8
docker rmi `docker images | grep none | awk '{print $3}'`
docker rmi -f $(docker images)
docker run -p 80:80 --name nginx -d nginx:1.17.0
-d选项:表示后台运行
–name选项:指定运行后容器的名字为nginx,之后可以通过名字来操作容器
-p选项:指定端口映射,格式为:hostPort:containerPort
docker ps
docker ps -a
# $ContainerName及$ContainerId可以用docker ps命令查询出来
docker stop $ContainerName(或者$ContainerId)
比如:
docker stop nginx
docker stop c5f5d5125587
docker kill $ContainerName(或者$ContainerId)
docker start $ContainerName(或者$ContainerId)
$ sudo docker ps
$ sudo docker exec -it 775c7c9ee1e1 /bin/bash
docker inspect --format "{{.State.Pid}}" $ContainerName(或者$ContainerId)
nsenter --target "$pid" --mount --uts --ipc --net --pid
docker rm $ContainerName(或者$ContainerId)
docker rm `docker ps -a | grep mall-* | awk '{print $1}'`
docker rm -f $(docker ps -a -q)
docker logs $ContainerName(或者$ContainerId)
docker logs $ContainerName(或者$ContainerId) -f
docker inspect --format '{{ .NetworkSettings.IPAddress }}' $ContainerName(或者$ContainerId)
docker container update --restart=always $ContainerName
docker cp /etc/localtime $ContainerName(或者$ContainerId):/etc/
docker run -p 80:80 --name nginx \
-e TZ="Asia/Shanghai" \
-d nginx:1.17.0
在宿主机查看docker使用cpu、内存、网络、io情况
查看指定容器情况:
docker stats $ContainerName(或者$ContainerId)
docker stats -a
docker system df
docker exec -it $ContainerName /bin/bash
docker exec -it --user root $ContainerName /bin/bash
docker network create -d bridge my-bridge-network
docker info | grep "Docker Root Dir"
systemctl stop docker
移动目录到目标路径:
mv /var/lib/docker /mydata/docker
建立软连接:
ln -s /mydata/docker /var/lib/docker