docker自建镜像&上装镜像

发布时间 2024-01-10 16:27:53作者: 小白十一

创建一个文件名称:Dockerfile

 

内容:

FROM openjdk:8-jre  #拉取openjdk:8-jre 这个镜像

ADD 1center-1.0.jar  app.jar  #jar包放到和dockerfile同级

EXPOSE 8761    #端口

ENTRYPOINT ["java","-jar","/app.jar"]   #启动jar包命令

 

FROM [镜像:版本]:指定所依赖的基础镜像

 

RUN <命令行命令>:等同于在终端执行的shell命令

 

RUN ["可执行文件", "参数1", "参数2"]:等同于在终端shell中执行 ./可执行文件

 

COPY <源文件> <目标文件> :将Dockerfile同目录下的文件拷贝到容器里面

 

ADD <源文件> <目标文件>:类似于COPY,区别在于如果文件是*.tar*.gzip*.bzip2等文件,会自动解压缩(注意:支持解压targzipbzip2文件,但不会自动解压zip文件)。

 例子:

FROM centos:7
RUN mkdir -p /data/portalsite3/server
RUN mkdir -p /data/jdk8

RUN yum update -y
RUN yum install tar -y
COPY jdk8 /data/jdk8
COPY node-v16.20.0-linux-x64.tar.gz /data/node-v16.20.0-linux-x64.tar.gz
RUN tar -xvf /data/node-v16.20.0-linux-x64.tar.gz --directory /usr/local --strip-components 1
WORKDIR /data/portalsite3/server
COPY portalsite-web.jar /data/portalsite3/server/portalsite-web.jar
COPY activemq.xml /data/portalsite3/server/activemq.xml
RUN chmod -R 777 /data/portalsite3
RUN chmod -R 777 /data/jdk8

CMD ["/data/jdk8/bin/java","-Dfile.encoding=utf-8","-jar","portalsite-web.jar"]

 

生成语句

docker build -t center .   #生成镜像的名称center

 

 

构建容器

docker run -i -t -d --name center -h center -p 8761:8761 center

#修改center名称和端口

 

导出所有镜像

docker save $(docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":";ORS=" "}{print $1,$2}') -o haha.tar

 

导入镜像:

# docker load -i haha.tar

 

上装镜像

 

sudo docker commit -a="nginx"  -m="bs" c95eff1e50dc nginx:1.1

 

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

 

OPTIONS说明:

 

-a :提交的镜像作者;

 

-c :使用Dockerfile指令来创建镜像;

 

-m :提交时的说明文字;

 

-p :在commit时,将容器暂停。