700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > docker Dockerfile java8构建微服镜像并运行

docker Dockerfile java8构建微服镜像并运行

时间:2021-10-17 07:59:54

相关推荐

docker Dockerfile java8构建微服镜像并运行

docker安装

拉取jdk镜像

docker search java8docker pull williamyeh/java8

上传jar到linux

[root@whotw eureka]# pwd/project/eureka [root@whotw eureka]# lseureka.jar

下面的指令都在jar包所在目录下执行

创建Dockerfile

[root@whotw eureka]# touch Dockerfile [root@whotw eureka]# lsDockerfile eureka.jar

Dockerfile内容

# 环境FROM williamyeh/java8:latest# 作者信息MAINTAINER david "3120338098@"# 将本地文件tmp挂载到容器VOLUME /tmp# 拷贝jarADD eureka.jar /eureka.jar# 设置暴露的端口号#EXPOSE 8761# 执行命令ENTRYPOINT ["java","-jar","/eureka.jar"]

构建微服务镜像【docker build -t 镜像名称:tag标签】

///后面的一个点要指定,表示从当前目录进行构建

docker build -t eureka:1.0 .

启动镜像,如果标签是latest而不是1.0后面的:latest可省略不写

docker run -d -p 8761:8761 eureka:1.0

查看容器是否存在且对应进程是否存在

[root@whotw eureka]# docker psCONTAINER ID IMAGECOMMAND CREATED STATUS PORTSNAMESdb0b37d8c165 eureka:1.0"java -jar /eureka.j…" 3 seconds ago Up 2 seconds 0.0.0.0:8761->8761/tcp flamboyant_payne[root@whotw eureka]# ps aux|grep eurekaroot 9650 67.6 21.3 2218520 212640 ?Ssl 00:42 0:15 java -jar /eureka.jarroot 9723 0.0 0.0 112708 976 pts/0 R+ 00:42 0:00 grep --color=auto eureka

浏览器访问宿主机IP:端口【关闭防火墙】

docker rmi -f imags_id //删除某个镜像docker rmi -f $(docker images) //删除所有镜像docker rm -f contain_id //删除某个容器docker rm -f $(docker ps -a -q) //删除所有容器

Dockerfile 常用命令

FROM FROM 镜像指令指明了当前镜像继承的基镜像,编译当前镜像时会自动下载基镜像 ,如果不指定映像url 则从docker hub 上获取。 e.g : FROM ubuntu MAINTAINER MAINTAINER 指令 指定了当前镜像的作者及联系方式。e.g : MAINTAINER: caiqiufangRUN RUN 指令可以在当前镜像上执行Linux 命令并形成一个新的层,RUN 是编译时(build) 的动作,在docker 命令中运行的shell 命令,等价于docker run <image> <command> 示例可以是如下两种,CMD 和 ENTRYPOINT也是如此 e.g : RUN /bin/bash -c "echo helloworld" or RUN {"/bin/bash", "-c" ,"echo helloworld"}CMDCMD 指令指明了启动镜像容器时的默认行为(docker 容器运行时的默认命令),一个Dockerfile 里只有一个CMD 指令,CMD 指令里设定的命令可以在运行镜像时使用参数覆盖,CMD 是 运行时(run)的动作。 e.g : CMD echo "this is a test" 正如上所说可以被运行时的参数覆盖,如下: docker run -d imag_name echo "this is not a test"。EXPOSE指明了镜像运行时的容器必须监听的端口 e.g : EXPOSE 8080ENV 用来设置环境变量 e.g : ENV myname = caiqiufang or ENV myname caiqiufang。ADDADD 指令是指从当前工作目录复制文件到镜像目录中去。 e.g : ADD test.txt /mydir/ENTRYPOINTENTRYPOINT 指令可以让容器像一个可执行程序一样运行,这样镜像运行时可以像软件一样 接收参数执行。ENTRYPOINT 是运行(run)时的动作 e.g : ENTRYPOINT {"/bin/echo"} ,那么我们可以向镜像传递参数运行 docker run -d image_name "this is a test"WORKDIR 指定RUN, CMD, ENTRYPOINT 等命令运行的工作路径

更多指令

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。