docker制作alpine+nginx+php镜像

前言

alpine 是一个轻量级安全地Linux系统,相比ubuntu和CentOS约200M的体积来说,它只有5M,简直令人难以置信。 我是很喜欢简洁的东西的,很多人说不要把docker当做虚拟来用,我暂时保留意见。
最初打算是搭建 ANMP的,但是 MySQL 官方没有提供 alpine 的包,只能下载 MariaDB ,出于对MySQL8的学习等各方面因素,我放弃了MySQL 。只把 nginx 和 php 放进去。

拉取镜像

  • 拉取镜像:docker pull alpine
  • 查看一下:docker images
  • 进入容器:docker run -it --name aaa alpine 测试容器名aaa

修改镜像源

  • sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories 这是阿里的,不改镜像源是真下载不动。
  • apk update

    这里树莓派系统aarch64遇到了网络不通问题,无法解决
    这里ubuntu我遇到了DNS的问题,vim /etc/resolv.conf 发现和容器外 192.168.0.1 不一致,修改后可以 。

下载nginx和php7扩展

  • apk add nginx
  • apk add php7
  • php -m 自带的扩展很少
  • apk add php7-fpm php7-pdo_mysql php7-mbstring php7-json php7-zlib php7-intl php7-session php7-curl php7-zip php7-dom php7-xmlwriter php7-xmlreader php7-simplexml php7-xmlrpc php7-opcache php7-gd php7-iconv php7-pecl-redis php7-bcmath (按需安装,这些比较常用)

启动服务

  • mkdir /run/nginx && touch /run/nginx/nginx.pid
  • nginx #启动
  • php-fpm7 #启动
  • 备注:配置分别在 /etc/nginx/etc/php7下自己配。(这里建议目录映射到本机。docker cp aaa:/etc/nginx /etcdocker cp aaa:/etc/php7:/etc/php7 先拷贝到本机上以备下次run时使用)

制作镜像

docker commit -a "作者" -m "描述" 容器号 iii:1.0 镜像名iii

使用镜像

docker run -itd --name 自定义容器名 -p 80:80 -v /var/www:/var/www iii:1.0
docker run -itd --name 自定义容器名 -p 80:80 -v /var/www:/var/www -v /etc/nginx:/etc/nginx -v /etc/php7:/etc/php7 iii:1.0 (配置目录映射)

redis镜像 - redis:alpine

  • 镜像大小:约32M
  • 镜像拉取:docker pull redis:alpine
  • 运行容器:docker run -itd --name ar -p 6379:6379 redis:alpine --requirepass 密码

猜你喜欢

转载自blog.csdn.net/z772532526/article/details/114290772