docker的学习和使用(二)
制作镜像
在宿主机创建一个目录
mkdir ~/dockerfile
将修改过的文件从正在运行的容器中复制出来
docker cp rockylinux8:/etc/httpd/conf/httpd.conf ~/dockerfile
docker cp rockylinux8:/etc/php-fpm.d/www.conf ~/dockerfile
docker cp rockylinux8:/etc/supervisord.conf ~/dockerfile
docker cp rockylinux8:/etc/supervisord.d/startup.ini ~/dockerfile
docker cp rockylinux8:/etc/dnf/dnf.conf ~/dockerfile
创建一个dockerfile
vi ~/dockerfile/Dockerfile
# 在文件中写入以下内容
FROM rockylinux/rockylinux:8
COPY dnf.conf /etc/dnf/
RUN dnf update -y && dnf install epel-release -y && dnf module -y reset php && dnf module -y enable php:8.0 && dnf --enablerepo=epel -y install httpd php php-fpm php-pear php-mbstring php-pdo php-gd php-mysqlnd php-IDNA_Convert php-enchant enchant hunspell procps-ng supervisor && mkdir -p /run/php-fpm/ && mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.org && dnf clean all && history -c
COPY httpd.conf /etc/httpd/conf/httpd.conf
COPY www.conf /etc/php-fpm.d/
COPY supervisord.conf /etc/
COPY startup.ini /etc/supervisord.d/
EXPOSE 80
CMD ["/usr/bin/supervisord"]
注意 这里有坑,使用docker build 命令后面是需要加 . 的
cd ~/dockerfile/
docker build -t="rockylinux8-php-fpm8" .
查看镜像
docker image ls

测试新镜像
# 释放80端口
docker stop rockylinux8
# 创建目录
mkdir /opt/wordpress
# 运行docker
docker run -d --name wordpress -v /opt/wordpress:/var/www/html -p 80:80 --restart=always rockylinux8-php-fpm8
docker ps
进入正在运行的容器
docker exec -ti wordpress bash
镜像导出
docker image save rockylinux8-php-fpm8:latest -o rockylinux8-php-fpm8.tar
# 删除容器和镜像
docker rm -f wordpress
docker image rm rockylinux8-php-fpm8:latest
docker image ls

浙公网安备 33010602011771号