1.Dockerfile 常用指令
官方文档:https://docs.docker.com/engine/reference/builder
2.构建镜像
docker build
命令用于使用Dockerfile
创建镜像。
1.使用已有的镜像进行创建 如果不会可以先看看我以前的文章
# 使用当前目录的 Dockerfile 创建镜像
docker build -t mycentos:7 .
# 通过 -f Dockerfile 文件的位置创建镜像
docker build -f /home/docker/Dockerfile -t mycentos:7 .
2. 我们通过基础镜像centos:7
,在该镜像中安装jdk
和tomcat
以后将其制作为一个新的镜像mycentos:7
mkdir -p /usr/local/dockerfile
cd /usr/local/dockerfile
vi Dockerfile
FROM centos:7
# 通过镜像标签声明了作者信息
LABEL maintainer="ruoyi.vip"
# 设置工作目录
WORKDIR /usr/local
# 新镜像构建成功以后创建指定目录
RUN mkdir -p /usr/local/java && mkdir -p /usr/local/tomcat
# 拷贝文件到镜像中并解压 (换成自己的jdk和tomcat)
ADD jdk-8u111-linux-x64.tar.gz /usr/local/java
ADD apache-tomcat-8.5.27.tar.gz /usr/local/tomcat
# 暴露容器运行时的 8080 监听端口给外部
EXPOSE 8080
# 设置容器内 JAVA_HOME 环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_111
ENV PATH $PATH:$JAVA_HOME/bin
# 启动容器时启动 tomcat
CMD ["/usr/local/tomcat/apache-tomcat-8.5.27/bin/catalina.sh", "run"]
在上方jdk和tomcat文件目录下 构建镜像(pd:也就是jdk和tomcat压缩包在一个目录下)
docker build -f /usr/local/dockerfile/Dockerfile -t mycentos:test .
最后这点 . 很重要 前方还有个空格 必须加
3.启动镜像
docker run -di --name mycentos -p 8080:8080 mycentos:test
进入容器
docker exec -it mycentos7 /bin/bash
4.镜像构建历史
docker history mycentos:7
3.镜像仓库
我们使用的镜像都是从DockerHub
公共仓库拉取的,我们也学习了如何制作自己的镜像,但是通过tar
包的方式实现镜像的备份恢复迁移对于团队协作开发并不是特别友好,我们也可以将镜像推送至DockerHub
仓库方便使用。
温馨提示:如果构建的镜像内携带了项目数据,建议还是使用私有仓库比较好。
官网:https://hub.docker.com
1.注册账户
登录账号
通过docker login
命令输入账号密码登录DockerHub
。
推送镜像至仓库
为了方便测试,我们将hello-world
镜像拉取至本地,然后再上传至DockerHub
仓库中。
docker tag hello-world:latest ruoyivip/test-hello-world:1.0.0
docker push ruoyivip/test-hello-world:1.0.0
拉取镜像
通过docker pull ruoyivip/test-hello-world:1.0.0
测试镜像是否可以拉取。
退出账号
通过docker logout
退出账号