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
posted @ 2024-06-28 10:14  柳橙23  阅读(30)  评论(0)    收藏  举报