吴江区建设用地申报网站网络科技建设网站
web/
2025/10/9 4:08:26/
文章来源:
吴江区建设用地申报网站,网络科技建设网站,在线图表生成器,centos7.2 wordpressdockerfile创建镜像#xff1a;创建自定义镜像。 包扩配置文件的创建#xff0c;挂载点#xff0c;对外暴露的端口。设置环境变量。
docker镜像的方式:
1、基于官方源进行创建
根据官方提供的镜像源#xff0c;创建镜像#xff0c;然后拉起容器。是一个白板#xff0c…dockerfile创建镜像创建自定义镜像。 包扩配置文件的创建挂载点对外暴露的端口。设置环境变量。
docker镜像的方式:
1、基于官方源进行创建
根据官方提供的镜像源创建镜像然后拉起容器。是一个白板只能提供基础的功能扩展性的功能还是需要自定义(进入容器进行操 2、基于模板进行创建
3、dockerfile
联合文件系统UnionFSdocker的基础。镜像通过分成来进行集成特性一次同时加载多个文件系统但是从外面来看就是一个文件系统。 docker镜像实际上由一层一层的文件系统组成这种层级的文件系统就是UnionFS。 每一层都是layers每一层都包含文件系统的一部分这些层次叠加在一起最终形成的就是rootfs。
docker原理 bootfs:宿主机提供的内核和引导程序 roosfs:就是容器的操作系统在dockerfile中我们可以自己指定。 rootfs是多个基础镜像和应用镜像结合起来的只读层。镜像实际上就是一个只读文件 容器基于镜像实力运行起来后容器可变成可读可写层。
docker报错
在dockerfile当中每创建一个指定都是一格镜像镜像层被缓存和复用 1-6层 1-4 4失败 再次执行1-4直接完成继续运行5-6
一旦有一层镜像失败那么所有的镜像层都会失败。镜像也不会创建 镜像层是不可变的在某一次添加一个新的命令在下一次删除指令镜像中基于这个命令创建的文件依然存在但在容器中不可见。
总结以上描述核心用户个性化定制docker的镜像
dockerfile的结构:
1、基础镜像信息 2、维护者信息 3、镜像的操作指令 4、容器启动时执行的命令。
docker logs 没日志原因
nginx:定义好了容器执行的命令 /bin/bash,覆盖了容器内的标准输出。
dockerfile语法
类型名说明FROM指定基础镜像的信息指定容器的操作系统。MAINTAINER指定维护者信息可有可无RUN在基础镜像上执行的命令每个run就是一层分层越多镜像就越大。ENTRYPOINT设置容器运行时的命令容器内部运行的主程序CMD可以指定容器运行时的默认命令docker run /bin/bash后面加了其他的命令cmd指令将会被覆盖EXPOSE暴露端口指定容器的运行端口ENV设置环境变量环境变量可以被run命令使用声明容器运行需要的环境变量ADD复制解压。解压不支持.zip和.tlrtar.gz tar.bz2 支持url的地址解压和复制解压COPY复制文件不能解压而且只能复制本地文件。文件要和dockerfile在一个目录.。官方推荐VOLUME创建一个容器内的挂载点既可以为宿主机挂载也可以供容器挂载。USER设置运行镜像时使用的用户或者UID可以不加WORKDIR未后续指令设置的工作目录。ONBUILD这个镜像可以被其他镜像引用需要这个命令。ARG传参用于创建容器时传递参数。ENV用于容器运行时设置环境变量。
CMD和ENTRYPOINT的区别 cmd可以把参数传给ENTRYPOINT的默认命令。有多个entrypoint和多个cmd只会运行最后一个一个dockerfile当中只会有一个entrypoint和cmd ENTRYPOINT指令不会被覆盖CMD的指令如果在docker run的后面加上输出会被覆盖。ENTRYPOINT和CMD的指令在容器启动时执行都会成为容器的主进程。主进程负责接受信号处理容器的生命周期主进程退出容器也将终止运行。
RUN命令的优化
核心作用主要是减少镜像的层数把多个run命令写一起。 符号
RUN yum-y install nginx make -j 4 make install
前一个命令执行成功才会执行下一个命令。
; 符号
RUN yum-y install nginx;make -j 4;make install
不管前一个命令执行成功后面的命令都会执行。
|| 符号
RUN yum-y install nginx || make -j 4
如果前面的命令执行失败才会执行后面的操作
\:换行
RUN yum-y install nginx \ make -j 4 \ make install可读写更高
copy和add区别
copy和add都可以把本地文件复制到镜像中官方推荐复制用copyadd可以解压add可以在复制文件之后会自动解压可以支持URL下载源文件支持下载但是不能解压。通过URL拷贝的文件无法自动解压。copy只能复制不能解压而且只能是本地文件不支持URL路径
centos7 构建一个apache的dockerfile(编译安装):
所需的包放在与Dockerfile文件同一个目录下 vim DockerfileFROM centos:7
MAINTAINER this is my apache LYW
RUN yum -y install gcc gcc-c make pcre pcre-devel expat-devel perl
ADD apr-1.6.2.tar.gz /opt
ADD apr-util-1.6.0.tar.gz /opt
ADD httpd-2.4.29.tar.bz2 /opt
RUN mv /opt/apr-1.6.2 /opt/httpd-2.4.29/srclib/apr mv /opt/apr-util-1.6.0 /opt/httpd-2.4.29/srclib/apr-util \
cd /opt/httpd-2.4.29 \
./configure --prefix/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi \
make -j 4 make install
EXPOSE 80
CMD [/usr/local/httpd/bin/apachectl,-D,FOREGROUND]
创建启动容器
docker run -itd --name 容器 镜像名:标签例
docker run -itd --name test1 apache1:centos
centos7 构建一个apache的dockerfile(编译安装): FROM centos:7
MAINTAINER this is my nginx LYW
RUN yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel
ADD nginx-1.22.0.tar.gz /opt
RUN useradd -M -s /sbin/nologin nginx \
cd /opt/nginx-1.22.0 \
mkdir -p /usr/local/nginx/run/ \
./configure --prefix/usr/local/nginx --usernginx --groupnginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module \
chown -R nginx.nginx /usr/local/nginx \
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/ \
make -j 4 make install
EXPOSE 80
RUN
CMD [/usr/local/nginx/sbin,-g,daemon off;]
创建启动容器
docker run -itd --name nginx1 nginx:centos
操作中遇到的问题
1、yum安装出错
解决方法重启docker
systemctl restart docker.service
2、报错RUN中\与下一个命令一起
解决方案将下一条命令run单写
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89431.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!