FROM: 基础镜像 Syntax: FROM centos:6.9 FROM centos@2199b8eb8390 RUN: 构建镜像过程中运行的命令 Syntax: RUN mv /etc/yum.repos.d/*.repo /tmp && echo -e "[ftp]\nname=ftp\nbaseurl=ftp://172.17.0.1/centos6.9\ngpgcheck =0">/etc/yum.repos.d/ftp.repo && yum makecache fast && yum install openssh-server -y RUN ["mysqld","--initialize-insecure","--user=mysql" ,"--basedir=/usr/local/mysql","--datadir=/data/mysql/data"] EXPOSE: 向外暴露的端口 Syntax: EXPOSE 22 CMD 使用镜像启动容器时运行的命令 Syntax: CMD ["/usr/sbin/sshd","-D"] docker rmi $(docker image ls -a | grep "none" | awk '{print $3}') # 8.3 通过例子学习其他指令 ## dockerfile 构建Lamp基础环境镜像 [root@docker dockerfile]# mkdir -p /opt/dockerfile/lamp [root@docker dockerfile]# cd /opt/dockerfile/lamp/ [root@docker lamp]# vim dockerfile # Centos6.9_sshd_LAMP FROM centos:6.9 RUN mv /etc/yum.repos.d/*.repo /tmp && echo -e "[ftp]\nname=ftp\nbaseurl=ftp://172.17.0.1/centos6.9\ngpgcheck=0">/etc/yum.repos.d/ftp .repo && yum makecache fast && yum install openssh-server htppd mysql mysql-server php php-mysql -y RUN /etc/init.d/sshd start && echo "123456" | passwd root --stdin && /etc/init.d/mysqld start && /etc/init.d/httpd start ##RUN mysql -e "grant all on *.* to root@'%' identified by '123';grant all on *.* to discuz@'%' identified by '123';create database discuz charset utf8;" COPY init.sh / ADD bbs.tar.gz /var/www/html/ ADD https://mirrors.aliyun.com/centos/7.6.1810/os/x86_64/Packages/centos-bookmarks-7-1.el7.noarch.rpm /tmp EXPOSE 22 EXPOSE 80 EXPOSE 3306 CMD ["/bin/bash","/init.sh"] [root@docker lamp]# cat init.sh #!/bin/bash /etc/init.d/mysqld start mysql -e "grant all on *.* to root@'%' identified by '123';grant all on *.* to discuz@'%' identified by '123';create database d iscuz charset utf8;" /etc/init.d/httpd start /usr/sbin/sshd -D [root@docker lamp]# cp /opt/vol/html/bbs.tar.gz ./ 73a87bbfa5b0 47b09321a33c "/bin/bash /init.sh" 13 seconds ago Up 12 seconds 0.0.0.0:32770->22/tcp, 0.0.0.0:32769->80/tcp, 0.0.0.0:32768->3306/tcp nostalgic_minsky CMD ["/bin/bash","/init.sh"] 说明: COPY命令: Syntax: <src>... <dest> 从dockerfile所在目录,拷贝目标文件到容器的制定目录下。 可以支持统配符,如果拷贝的是目录,只拷贝目录下的子文件子目录。 cp oldguo/* ADD Syntax: <src>... <dest> url <dest> 比COPY命令多的功能是,可以自动解压.tar*的软件包到目标目录下 可以指定源文件为URL地址 VOLUME ["/var/www/html","/data/mysql/data"] WORKDIR ENV 设定变量 ENV CODEDIR /var/www/html/ ENV DATADIR /data/mysql/data ADD bbs.tar.gz ${CODEDIR} VOLUME ["${CODEDIR}","${DATADIR}"] ENTRYPOINT #CMD ["/bin/bash","/init.sh"] ENTRYPOINT ["/bin/bash","/init.sh"] 说明: ENTRYPOINT 可以方式,在启动容器时,第一进程被手工输入的命令替换掉,防止容器秒起秒关
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
轻松上手:使用 Docker Compose 部署 TiDB 的简易指南
shunwahⓂ️
94次阅读
2025-04-27 16:19:49
Dify使用deepseek
golang算法架构leetcode技术php
60次阅读
2025-04-21 10:35:08
5.1 | MySQL 企业版的 Docker 安装方式
严少安
54次阅读
2025-05-12 00:14:16
GreatSQL社区月报 | 2025.3
GreatSQL社区
32次阅读
2025-04-15 09:49:59
Qwen3震撼发布,用openGauss x Dify抢先体验,秒速搭建智能知识库
Gauss松鼠会
24次阅读
2025-05-07 10:05:56
Qwen3震撼发布,用openGauss x Dify抢先体验,秒速搭建智能知识库
openGauss
18次阅读
2025-05-06 10:19:35
CentOS 9 (stream) 安装 Docker
韩公子的Linux大集市
15次阅读
2025-04-21 07:08:32
容器运行千问3的快速方法
济南小老虎
14次阅读
2025-05-06 06:37:44
CentOS Stream9 Docker可用源
韩公子的Linux大集市
11次阅读
2025-04-21 07:42:59
安利一个墙内镜像站
济南小老虎
10次阅读
2025-04-24 06:37:49