docker 构建自定义镜像

被刻印的时光 ゝ 提交于 2020-02-01 08:29:29

Commit 构建自定义镜像

  • 简介:对容器的修改以及保存
  • 构建镜像:
    docker commit -a “mimosa” -m “mkdir /home/mimosa” 4eb9d14ebb18 centos:7
    -a:标注作者
    -m:说明注释
  • 查看详细信息:docker inspect 180176be1b4c

Dockerfile 构建自定义镜像

  • Dockerfile
    # this is a dockerfile 
    FROM centos:7 
    MAINTAINER XD 123456@qq.com 
    RUN echo "正在构建镜像!!!" 
    WORKDIR /home/xdclass 
    COPY 123.txt /home/xdclass 
    RUN yum install -y net-tools
    
  • Dockerfile 基础指令
    • FROM
      基于哪个镜像
    • MAINTAINER
      注明作者
    • COPY
      复制文件进入镜像(只能用相对路径,不能用绝对路径)
    • ADD
      复制文件进入镜像(假如文件是.tar.gz文件会解压)
    • WORKDIR
      指定工作目录,假如路径不存在会创建路径
    • ENV
      设置环境变量
    • EXPOSE
      暴露容器端口
    • RUN
      在构建镜像的时候执行,作用于镜像层面
    • ENTRYPOINT
      在容器启动的时候执行,作用于容器层,dockerfile里有多条时只允许执行最后一条
    • CMD
      在容器启动的时候执行,作用于容器层,dockerfile里有多条时只允许执行最后一条;
      容器启动后执行默认的命令或者参数,允许被修改
    • 命令格式:
      • shell命令格式:RUN yum install -y net-tools
      • exec命令格式:RUN [ “yum”,“install” ,"-y" ,“net-tools”]
    • dockerfile
    #第一个 
    FROM centos:7 RUN echo "images building!" CMD 
    ["echo","container","starting..."] ENTRYPOINT 
    ["echo","container","starting !!!"]
    
    #第二个 
    FROM centos:7 RUN echo "images building!" CMD 
    ["echo","containe1r","starting..."] CMD 
    ["echo","container2","starting..."] ENTRYPOINT 
    ["echo","container2","starting !!!"] ENTRYPOINT 
    ["echo","container2","starting !!!"] 
    
    #第三个 
    FROM centos:7 
    CMD ["-ef"] 
    ENTRYPOINT ["ps"]
    

Dockerfile 构建 JAVA 网站镜像

  • dockerfile

    # vi dockerfile (路径要与安装包保持一致)
    
    FROM centos:7 
    ADD jdk-8u211-linux-x64.tar.gz /usr/local 
    RUN mv /usr/local/jdk1.8.0_211 /usr/local/jdk 
    ENV JAVA_HOME=/usr/local/jdk 
    ENV JRE_HOME=$JAVA_HOME/jre 
    ENV CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH 
    ENV PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH 
    ADD apache-tomcat-8.5.35.tar.gz /usr/local 
    RUN mv /usr/local/apache-tomcat-8.5.35 /usr/local/tomcat 
    EXPOSE 8080 
    ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]
    
  • 构建镜像

    # docker build -t centos:jdk
    
  • 启动容器

    # docker run -itd -p 80:8080 centos:jdk /bin/bash
    

docker 快速部署 mysql 数据库并初始化

  • 拉取 mysql 镜像

    # docker pull mysql:5.7
    
  • 启动命令 (MYSQL_ROOT_PASSWORD:指定密码)

    # docker run --name some-mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -d mysql:5.7
    
  • 进入容器命令

    # docker exec -it 4336ae28fbfa env LANG=C.UTF-8 /bin/bash
    

上一篇 :docker 常用命令
下一篇 :docker 容器的网络模式

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!