赞
踩
常用docker命令
docker images #显示dockers目前安装的所有镜像
#每个容器可以里当做一个精简版的Linux虚拟机
docker ps #显示在运行的容器
docker ps -a #显示所有容器包括在运行的和停止的
docker run -d --name 容器名 -p 宿主机端口:容器端口 -v 宿主机目录:容器目录 镜像名:tag(或者镜像id) #从一个镜像启动一个容器(或者叫从一个镜像启动一个虚拟机),并且指定容器名称,容器端口和宿主机端口映射关系,将容器某个目录持久化到宿主机某个目录
docker stop 容器id #停止一个容器
docker start 容器id #启动一个停止的容器
docker exec -it 容器id /bin/bash #进入容器(或者叫进给虚拟机)
docker logs -f -t --tail 100 容器id #查看容器日志(比如容器的镜像只是把jdk和一个业务jar包打在一起,那么容器跑起来,日志其实就是jar包的日志)
docker rm 容器id #删除容器,删除前必须先停止容器
docker rmi 镜像名:tag或者镜像id #删除镜像
docker save -o 要导出的tar文件 镜像名:tag #导出镜像 例如:docker save -o /home/libb/guarantee_web.tar guarantee_web:1.0
docker load -i 要导入的tar文件 #导入镜像 例如:docker load -i /home/libb/guarantee_web.tar
docker 构建Java项目的Dockerfile示例
1、在宿主机(我用的是WSL2安装的Ubuntu)中创建docker目录 mkdir /usr/local/docker
2、将要部署的jar包 guarantee-web-5.1-SNAPSHOT.jar copy到第一步中创建的文件目录中(/usr/local/docker)
3、在/usr/local/docker目录中创建镜像构建文件dockerfile.txt,内容如下:
# 基础镜像使用java
FROM java:8
# 添加一个卷,卷独立于容器,容器删除卷也会一直存在,多个容器可以共用一个卷,用来共享数据
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD guarantee-web-5.1-SNAPSHOT.jar app.jar
# 运行jar包
ENTRYPOINT ["java","-jar","app.jar"]
#暴露9070端口作为微服务
EXPOSE 9070
其中暴露的端口就是jar包用到的端口,从这一点可以看出docker容器其实是一台虚拟机,有端口。
4、进入到/usr/local/docker目录,开始构建镜像 docker build -f dockerfile.txt -t guarantee_web:1.0 .
其中 -f 后面的是Dockerfile文件名, -t 后面的是构建完成后镜像的名字和版本(tag就是版本),.这个点表示 Dockerfile 所在的当前目录。Docker 会从这个目录开始构建镜像。
5、从刚刚打包好的镜像 docker run -d --name=guarantee_web -p 9070:9070 guarantee_web:1.0启动一个容器
6、进入刚刚启动的容器 docker exec -it 17e09c82efe7 /bin/bash 17e09c82efe7是容器id
7、查看日志 docker logs -f -t --tail 100 17e09c82efe7
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。