1.安装docker-ce
准备源
rm -fr /etc/yum.repos.d/*
curl -L https://mirrors.aliyun.com/repo/Centos-7.repo -o /etc/yum.repos.d/CentOS-Base.repo
# docker源
curl -L https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
# 更新缓存源
yum clean all && yum repolist
安装docker-ce
yum -y install docker-ce
修改默认镜像站
cat >> /etc/docker/daemon.json <<-EOF
{
"registry-mirrors": ["https://o7h5zhl4.mirror.aliyuncs.com"]
}
EOF
启动docker
systemctl start docker
准备docker-compose
下载地址:https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64
mv docker-compose /usr/local/bin/
# 赋予可执行权限
chmod +x /usr/local/bin/docker-compose
# 查看版本,若查看到版本,则docker-compose可以使用
docker-compose --version
2.搭建Discuz
创建项目目录,并进入主目录
mkdir -p discuz/{web,db}
cd discuz/
编写网站Dockerfile
cat >> web/Dockerfile <<-EOF
FROM centos:7
RUN rm -fr /etc/yum.repos.d/*
RUN curl -L https://mirrors.aliyun.com/repo/Centos-7.repo -o /etc/yum.repos.d/CentOS-Base.repo
RUN rm -fr /var/cache/yum/*
RUN yum -y install httpd php php-mysql net-tools
EXPOSE 80
CMD ["/usr/sbin/httpd","-DFOREGROUND"]
EOF
编写数据库Dockerfile
cat >> db/Dockerfile <<-EOF
FROM centos:7
RUN rm -fr /etc/yum.repos.d/*
RUN curl -L https://mirrors.aliyun.com/repo/Centos-7.repo -o /etc/yum.repos.d/CentOS-Base.repo
RUN rm -fr /var/cache/yum/*
RUN yum -y install mariadb-server net-tools openssh-server
COPY db.sh /root/db.sh
RUN chmod 777 /root/db.sh
ENV MARIADB_USER root
ENV MARIADB_PASS 1234
RUN /root/db.sh
COPY run.sh /root/run.sh
RUN chmod 777 /root/run.sh
RUN sshd-keygen
RUN echo "1234" | passwd --stdin root
EXPOSE 22
CMD ["/root/run.sh"]
EOF
其他文件
vim db/db.sh
#!/bin/bash
mysql_install_db --user=mysql
sleep 3
mysqld_safe &
sleep 3
#mysqladmin -u "$MARIADB_USER" password "$MARIADB_PASS"
mysql -e "use mysql; grant all privileges on *.* to '$MARIADB_USER'@'%' identified by '$MARIADB_PASS' with grant option;"
h=$(hostname)
mysql -e "use mysql; update user set password=password('$MARIADB_PASS') where user='$MARIADB_USER' and host='$h';"
mysql -e "flush privileges;"
vim db/run.sh
#!/bin/bash
/usr/sbin/sshd
mysqld_safe
编写docker-compose.yml文件
vim docker-compose.yml
version: '2'
services:
web:
build: ./web
image: "httpd:php5"
restart: always
container_name: web
volumes:
- "./upload:/var/www/html"
networks:
docker-1:
ipv4_address: 10.5.20.36
depends_on:
- db
db:
build: ./db
image: "db:mariadb5"
restart: always
container_name: db
networks:
docker-1:
ipv4_address: 10.5.20.37
networks:
docker-1:
driver: macvlan
driver_opts:
parent: eth0
ipam:
config:
- subnet: 10.5.20.0/24
gateway: 10.5.20.1
上传Discuz压缩包并解压至项目主目录
unzip /root/Discuz_X3.2_SC_UTF8.zip -d ./
chmod -R 777 upload/
运行容器
docker-compose up -d --build
访问:http://10.5.20.36
删除容器
docker-compose down