- 1. dockerfile的参数
- 2. 环境的准备
- 2.1 安装包的准备
- 2.2先来一个简单点的
| 参数 | 解释 |
|---|---|
| FROM | 基础镜像 |
| COPY | src dest 从dockerfile目录拷贝文件到容器里边 |
| RUN | 命令 |
| CMD | 启动容器命令 |
| ADD | 比COPY命令多的功能是,可以自动解压.tar*的软件包到目标目录下,可以指定源文件为URL地址 |
| VOLUME | 数据目录挂载 |
| ENV | 设定变量 |
| ENTRYPOINT | 可以方式,在启动容器时,第一进程被手工输入的命令替换掉,防止容器秒起秒关 |
ENV 设定变量
ENV CODEDIR /var/www/html/
ENV DATADIR /data/mysql/data
ADD bbs.tar.gz ${CODEDIR}
VOLUME ["${CODEDIR}","${DATADIR}"]
VOLUME ["/var/www/html","/data/mysql/data"]
#CMD ["/bin/bash","/init.sh"] ENTRYPOINT ["/bin/bash","/init.sh"]2. 环境的准备
还是以本地的iso镜像作为安装源,参考docker2的一篇
安装vsftpd,配饰文件的修改等等
discuz的下载地址:
https://gitee.com/3dming/DiscuzL/attach_files
下载后上传到虚拟机/opt/dockerfile/lamp/
yum install -y lrzsz rz -E mkdir discuz cd discuz unzip Discuz_X3.4_SC_UTF8_20210926.zip ll 然后压缩文件,因为ADD参数只会解压tar的文件,所以我们压缩成tar cd /opt/dockerfile/lamp/discuz tar cf discuz.tar.gz ./* cp discuz.tar.gz /opt/dockerfile/lamp2.2先来一个简单点的
mkdir -p /opt/dockerfile/lamp cd /opt/dockerfile/lamp vim dockerfile # Centos6.9_sshd_LAMP FROM centos:6.9 RUN mv /etc/yum.repos.d/*.repo /tmp && echo -e "[ftp]nname=ftpnbaseurl=ftp://172.17.0.1/centos6.9ngpgcheck=0">/etc/yum.repos.d/ftp.repo && yum makecache fast && yum install openssh-server httpd 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 COPY init.sh / ADD discuz.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"] 创建init.sh 在当前目录下(注意) vim init.sh #!/bin/bash /etc/init.d/mysqld start #mysql -e "delete from mysql.user where user='root';delete from mysql.user where user=' ';flush privileges;" mysql -e "grant all on *.* to root@'localhost' identified by '123';grant all on *.* to discuz@'localhost' identified by '123';grant all on *.* to root@'%' identified by '123';grant all on *.* to discuz@'%' identified by '123';create database discuz charset utf8;flush privileges;" chmod -R 777 /var/www/html/* /etc/init.d/httpd start /usr/sbin/sshd -D
制作镜像:
docker build -t "yq/lamp_bbs" ./ ./ 也就是/opt/dockerfile/lamp目录下 docker image ls
启动:
docker run -d -p 80 -p 3306 -p 22 bbs
docker container ls ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1892be1e712b bbs "/bin/bash /init.sh" 4 seconds ago Up 4 seconds 0.0.0.0:49182->22/tcp, :::49182->22/tcp, 0.0.0.0:49181->80/tcp, :::49181->80/tcp, 0.0.0.0:49180->3306/tcp, :::49180->3306/tcp ecstatic_villani
访问:
192.168.80.201:49181/upload
安装下一步即可:



