#yyds干货盘点#--dockerfile自动构建docker镜像

网友投稿 305 2022-10-23

#yyds干货盘点#--dockerfile自动构建docker镜像

一、手动构建docke镜像的缺点

相对于手动制作的docker镜像,使用dockerfile构建的镜像有以下优点:

1:dockerfile只有几kb,便于传输

2:使用dockerfile构建出来的镜像,在运行容器的时候,不用指定容器的初始命令

3:支持更多的自定义操作

二、dockerfile常用指令语法

dockerfile常用指令:

FROM 这个镜像的妈妈是谁?(指定基础镜像) MAINTAINER 告诉别人,谁负责养它?(指定维护者信息,可以没有) RUN 你想让它干啥(在命令前面加上RUN即可) ADD 一个复制命令将本地文件复制到容器中,tar类型文件会自动解压。可以访问网络资源,类似wget WORKDIR 我是cd,今天刚化了妆(设置当前工作目录)(进入容器后的目录) VOLUME 给它一个存放行李的地方(设置卷,挂载主机目录) EXPOSE 它要打开的门是啥(指定对外的端口)(-P 随机端口映射的端口) CMD 奔跑吧,兄弟!(指定容器启动后的要干的事情)(容易被替换)

dockerfile其他指令:

COPY 复制命令,功能类似ADD,但是不会自动解压文件,也不能访问网络资源 ENV 环境变量 可以传环境变量如:docker run --env "passwd=654321" -d -p 2254:22 centos6-ssh:v3 ENTRYPOINT 容器启动后执行的命令(无法被替换,启容器的时候指定的命令,会被当成参数

三、dockerfile实战1

手动制作docker镜像步骤:

启动容器安装软件服务 docker run -it -p 1022:22 --name oldboy centos:6.9 ###### yum install openssh-server -y /etc/init.d/sshd start echo 123456|passwd --stdin root ###### 将安装好服务的容器commit提交为镜像 docker commit oldboy centos6-ssh:v1 启动新容器来测试新提交的镜像 docker run -d -p 2022:22 centos6-ssh:v1 /usr/sbin/sshd -D

dockerfile制作docker镜像步骤:

编写dockerfile vi dockerfile FROM centos:6.9 RUN yum install openssh-server -y RUN /etc/init.d/sshd start RUN echo 123456|passwd --stdin root CMD ["/usr/sbin/sshd","-D"] docker build构建镜像 docker build -t centos6-ssh:v2 . 启动新容器来测试新构建的镜像 docker run -d -p 1322:22 centos6-ssh:v2

四、dockerfile实战2

手动制作支持ssh-http双服务的docker镜像

启动容器安装软件服务 docker run -it --name oldgirl centos:6.9 yum install -y yum install openssh-server -y /etc/init.d/sshd start echo 123456|passwd --stdin root 编写容器启动脚本 vi /init.sh #!/bin/bash /etc/init.d/start /usr/sbin/sshd -D 将安装好服务的容器commit提交为镜像 docker commit oldgirl centos6-ssh-httpd:v1 启动新容器来测试新提交的镜像 docker run -d -p 8080:80 -p 1122:22 centos6-ssh-/bin/bash /init.sh dockerfile制作docker镜像步骤: 编写dockerfile FROM centos:6.9 RUN yum install openssh-server -y RUN /etc/init.d/sshd start RUN echo 123456|passwd --stdin root ADD init.sh /init.sh CMD ["/bin/bash","/init.sh"] 编写容器启动脚本 vim /init.sh #!/bin/bash /etc/init.d/start /usr/sbin/sshd -D docker build构建镜像 docker build -t centos6-ssh-httpd:v2 启动新容器来测试新提交的镜像 docker run -d -p 8080:80 -p 2122:22 centos6-ssh-需要的环境:

==++制作docker镜像步骤,先手动,再自动++==

httpd+php或者nginx+php php所需模块:未知 基础镜像:centos:6.9 项目下载地址: 手动制作kodexplorer镜像

yum install php php-cli php-gd php-mbstring unzip -y cd /var/www/html/ curl -O http://static.kodcloud.com/update/download/kodexplorer4.40.zip unzip kodexplorer4.40.zip chmod -R 777 /var/www/html/ /etc/init.d/ start

5.3 编写dockerfile自动构建

[root@docker1 ~]# vim dockerfile FROM centos:6.9 RUN yum install php php-cli php-gd php-mbstring unzip -y WORKDIR /var/www/html RUN /etc/init.d/ start COPY kodexplorer4.40.zip . RUN unzip kodexplorer4.40.zip RUN chmod -R 777 /var/www/html/ ADD init.sh /init.sh EXPOSE 80 CMD ["/bin/bash","/init.sh"]

[root@docker1 ~]# vim init.sh #!/bin/bash /etc/init.d/start tail -F /aa ~

自动构建

docker build -t kod:v1 .

[root@docker1 ~]# ls anaconda-ks.cfg dockerfile init.sh kodexplorer4.40.zip

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:为什么在物联网时代,“接口”的重要性超过“入口”?
下一篇:用于VR编程的NVIDIA SMP Assist API
相关文章

 发表评论

暂时没有评论,来抢沙发吧~