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"]
- FROM
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 容器的网络模式
来源:CSDN
作者:南·鸢
链接:https://blog.csdn.net/qq_42687997/article/details/103806279