构建镜像之前需要先编写Dockerfile
Dockerfile
FROM openjdk:8
VOLUME /tmp
ADD ./app.jar /app/app.jar
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app/app.jar"]
其中ADD中的./app.jar为宿主机中jar包的地址,/app/app.jar为docker镜像中jar包的地址
ADD ./app.jar /app/app.jar
docker 构建镜像
docker build -t app:1.0 .
其中,-t选项指定镜像的名称为java,.表示Dockerfile所在的当前目录。
docker 启动命令
docker run -d -p 8080:8080 --name app app:1.0
-d 参数表示以后台方式运行容器
-p 8080:8080参数表示将容器的8080端口映射到主机的8080端口
–name smatmds 参数表示为容器指定一个名字
将镜像保存到本地文件
docker save -o smartmds_1.0.tar app:1.0
从本地文件中加载镜像
docker load --input app_1.0.tar
Docker login/logout 命令
-
docker login : 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
-
docker logout : 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker login [OPTIONS] [SERVER]
docker logout [OPTIONS] [SERVER]
OPTIONS说明:
-
-u :登陆的用户名
-
-p :登陆的密码
例如 登陆到Docker Hub
docker login -u 用户名 -p 密码
docker pull
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
OPTIONS说明:
-
-a :拉取所有 tagged 镜像
-
–disable-content-trust :忽略镜像的校验,默认开启
docker push
将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
docker push [OPTIONS] NAME[:TAG]
OPTIONS说明:
- –disable-content-trust :忽略镜像的校验,默认开启