Docker:构建镜像

作者: 聪明的奇瑞 | 来源:发表于2018-02-07 17:49 被阅读30次

    使用 Dockerfile 构建 Docker 镜像

    • Dockerfile 是一个文本文件,其中包含若干条指令,描述构建镜像的细节
    • 编写一个最简单的 Dockerfile,通过它来修改镜像的首页
      1. 该 Dockerfile 非常简单,FROM、RUN 都是 Dockerfile 的指令,FROM 指令用于指定基础镜像,RUN 指令用于执行命令
      FROM nginx
      RUN echo '<h1>第一个 Docker 案例</h1>' > /usr/share/nginx/html/index.html
      
      1. 在 Dockerfile 所在路径执行以下命令构建镜像,命令最后的 (.) 用于路径参数传递,表示当前路径
      docker build -t nginx:my .
      
      1. 执行以下命令,即可使用镜像启动一个 Docker 容器
      docker run -d -p 92:80 nginx:my
      
      1. 访问 http://Docker 宿主机IP:92/ 即可看到效果

    将微服务构建成镜像

    • 准备工作:一个简单的微服务项目 docker-demo,包含一个 /hello 接口,返回 HelloWorld,并且设置了端口为 8080
    server:
      port: 8080
    
    • 将项目通过 Maven 打包成 jar 包 docker-demo-0.0.1-SNAPSHOT.jar
    mvn clean package
    
    • 在 jar 包目录,创建名为 Dockerfile 文件
    touch Dockerfile
    
    • 在 Dockerfile 文件中添加以下内容
    # 基于哪个镜像
    FROM java:8
    # 声明持久化文件挂载点
    VOLUME /tmp
    # 复制本地文件到容器
    ADD docker-demo-0.0.1-SNAPSHOT.jar app.jar
    # 执行命令
    RUN bash -c 'touch app.jar'
    # 声明暴露的端口
    EXPOSE 8080
    # 配置容器启动后执行的命令
    ENTRYPOINT ["java","-jar","app.jar"]
    
    • 使用 docker build 命令构建镜像
    • 格式:docker build -t 仓库名称(对应 DockerHub 用户名)/镜像名称(对应 DockerHub 仓库名):标签(相当于版本号) Dockerfile的相对位置
    docker build -t linyuantongxue/docker-demo:0.0.1 .
    
    • 启动镜像
    docker run -d -p 8761:8080 linyuantongxue/docker-demo:0.0.1
    

    注意:如若出现以下错误

    WARNING: IPv4 forwarding is disabled. Networking will not work.  
    

    解决办法

    // 使用管理员角色打开该配置文件
    vi /etc/sysctl.conf
    // 添加以下配置
    net.ipv4.ip_forward=1
    // 重启network服务
    systemctl restart network
    

    相关文章

      网友评论

        本文标题:Docker:构建镜像

        本文链接:https://www.haomeiwen.com/subject/xueazxtx.html