首先进入到目录,为了方便这里的jar包和dockerfile我放在了一起
还是让我们看看dockerfile里面有些什么吧
from基于java8的镜像构建,maintainer是作者的信息,add命令把主机的文件拷贝到容器的app目录下(因为我的dockerfile和文件是放在一起的,所以直接写了文件名。),cmd是在容器执行的命令,expose是暴露的端口号。
接下来执行docker ps -a
因为这个容器我已经运行了,所以我要删除它,
主要的操作是
docker stop 容器id
docker rm 容器id
构建镜像
docker build -t="preprocess-server:1.0" .
详细解释一下这句话 -t后面是镜像的名字,冒号后面是版本号,后面还有小数点,是寻找dockerfile,这个小数点代表从当前目录寻找。(因为我就是在这个目录里面执行的,所以就用小数点啦)
查看我们刚刚构建的镜像
docker images
最后一步运行
docker run -d -p 9001:8001 --name=preprocess -v /data/logs:/logs/fast-fds d5b51909cd88
还是继续解释一下这句命令
-p 主机号的端口:容器的端口
--name 你要运行镜像的name
-v 主机的文件夹:容器的文件夹(用于日志的查看,不然日志在容器里,每次都得去容器查看日志很麻烦)
d5b51909cd88 这个是镜像的id
访问主机的ip:9001就可以看到我们运行的应用了。
补充:如果想进入到容器,可以执行docker exec -it 容器名称 /bin/sh 或者 docker exec -it 容器id /bin/sh
常用的一些命令:
docker ps 显示正在运行的容器
docker ps -a 显示所有容器
docker images 显示所有的镜像