Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux(Windows,MacOS) 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

一、安装nginx、php、mysql镜像

docker pull nginx:latest

docker pull php:5.6-fpm

docker pull php:5.6-cli

docker pull mysql:5.6.46

docker pull phpmyadmin/phpmyadmin

使用命令docker images

查看本地镜像:

REPOSITORY TAG IMAGE ID CREATED SIZE

nginx latest c7460dfcab50 5 hours ago 126MB

phpmyadmin/phpmyadmin latest fcf3beee74b9 47 hours ago 458MB

mysql 5.6.46 f7ba8643e01a 12 days ago 302MB

php 5.6-fpm 3458979c7744 11 months ago 344MB

php 5.6-cli 36c3c974e6ee 11 months ago 344MB

善用docker search

命令来查看可用版本。

https://www.runoob.com/docker/docker-search-command.html

二、运行、停止、删除容器

可以执行命令docker container ls

或者docker container ls -all

,来查看已启动的容器或者所有容器。

docker run --name xu-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.6.46

docker run --name xu-phpmyadmin -d --link xu-mysql:db -p 8081:80 phpmyadmin/phpmyadmin

# 访问http://127.0.0.1:8081/,使用root/123456账号信息登录管理mysql

docker run --name xu-php-fpm5.6 -v ~/code/docker/nginx/www:/www -d php:5.6-fpm

这样没有和nginx结合,如果启动了这个容器,可以停止并删除它,如下:

docker stop 027c0f432aae # 此外对应的容器id

docker rm 027c0f432aae

下面Nginx + PHP:

docker run --name xu-nginx -p 8080:80 -d -v ~/code/docker/nginx/www:/usr/share/nginx/html -v ~/code/docker/nginx/conf/conf.d/:/etc/nginx/conf.d --link xu-php-fpm5.6:php nginx

参考:

https://www.runoob.com/docker/docker-install-php.html

https://hub.docker.com/_/php

当把web程序代码放入~/code/docker/nginx/www

后,在浏览器打开http://127.0.0.1:8080/

,提示:

您的服务器环境不支持gd扩展,将无法使用验证码!

三、安装php扩展gd库

# 如果之前启用了gd,需要先在php.ini文件中注释掉extension=gd.so并重启容器

# 进入php容器

docker exec -it /bin/bash

# 容器中

# 可把软件源修改为国内某镜像站源,例如容器软件源/etc/apt/sources.list修改为网易镜像站源,以stretch为例:

deb http://mirrors.163.com/debian/ stretch main contrib non-free contrib

deb http://mirrors.163.com/debian/ stretch-updates main contrib non-free contrib

deb http://mirrors.163.com/debian/ stretch-backports main contrib non-free contrib

# 更新软件源

apt update

# 安装各种库

apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev

# 解压源码

docker-php-source extract

# 进入gd源码文件夹

cd /usr/src/php/ext/gd

# 准备编译

docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2

# 编译安装

docker-php-ext-install gd

# 检查扩展是否安装成功

php -m | grep gd

# 退出php容器终端

exit

# 重启php容器

……

四、扩展知识

1、docker-php-source

此命令在PHP容器中创建一个/usr/src/php的目录,里面放了一些自带的文件而已。我们就把它当作一个从互联网中下载下来的PHP扩展源码的存放目录即可。事实上,所有PHP扩展源码扩展存放的路径: /usr/src/php/ext 里面。

格式:

docker-php-source extract | delete

参数说明:

* extract : 创建并初始化 /usr/src/php目录

* delete : 删除 /usr/src/php目录

2、docker-php-ext-enable

这个命令是用来启动PHP扩展

的。我们使用pecl安装PHP扩展的时候,默认是没有启动这个扩展的,如果想要使用这个扩展必须要在php.ini这个配置文件中去配置一下才能使用这个PHP扩展。而 docker-php-ext-enable 这个命令则是自动给我们来启动PHP扩展的,不需要你去php.ini这个配置文件中去配置。

3、docker-php-ext-install

这个命令是用来安装并启动PHP扩展

的。

命令格式:

docker-php-ext-install “源码包目录名”

注意点:

“源码包“需要放在 /usr/src/php/ext 下

默认情况下,PHP容器没有 /usr/src/php这个目录,需要使用 docker-php-source extract来生成。

docker-php-ext-install 安装的扩展在安装完成后,会自动调用docker-php-ext-enable来启动安装的扩展。

卸载扩展,直接删除/usr/local/etc/php/conf.d 对应的配置文件即可。

docker php gd扩展,docker安装php扩展gd库相关推荐

  1. php安装mongo扩展,php安装mongo扩展和mongodb扩展

    mongo扩展主要是针对php 5.x的,而且以后不提供更新维护:后续一般都用mongodb扩展,当然,要根据实际生产环境来确定.还是要看需求. 方法1:git下载安装包安装mongodb扩展 cd ...

  2. docker php安装gd扩展_docker安装php扩展gd库

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 ...

  3. 【docker】为docker下的php容器安装php-redis扩展【编译安装】

    创建容器时没有添加参数  --restart=always ,导致的后果是:当 Docker 重启时,容器未能自动启动. 现在要添加该参数怎么办呢,方法有二: 1.Docker 命令修改 docker ...

  4. 安装php7的mysql扩展,php7安装mysql扩展的方法是什么

    php7安装mysql扩展的方法:1.下载mysql扩展并解压:2.使用phpize工具初始化并进行configure:3.执行[make && make install]命令:4.编 ...

  5. php7 imagick扩展,php7安装imagick扩展

    使用php7,通过加载pdf文件,生成图片,需要用到imagick扩展,下面是如何安装该扩展 php使用7.1版本,操作系统为centos6版本 1.首先linux下,通过yum 安装依赖包 yum ...

  6. php pg connect 扩展,php安装gnupg扩展

    需要在php中使用gpg加密 function gpg() { $keydata = file_get_contents('li7.asc'); $res = gnupg_init(); $info ...

  7. mamp 下载安装php扩展,mamp安装php扩展

    我的mamp版本是4.0以上的版本, 在/Applications/MAMP/bin/php/php7.1.1/下含有include, 如果不含有需要本身新建文件夹为include, 然后从php官网 ...

  8. 上传到服务器gd不支持,安装dedecms出现GD不支持。我的php5.5的。怎么解决?

    在php.ini中开启GD即可. Windows下开启PHP的GD库支持 找到php.ini,打开内容,找到: ;extension=php_gd2.dll 把最前面的分号";"去 ...

  9. docker php安装gd扩展_php安装redis扩展

    前言 本文假定已经通过编译安装php程序,如果您是通过其他方式安装的php,实现方式可能有所不同. 运行环境:Centos 7.4.PHP7.2.x. 教程 安装redis 可以通过 PEAR / P ...

  10. mongoclient php扩展,lnmp安装mongo扩展后,在实例化mongoClient()时出错

    安装完了mongo扩展,phpinfo中也有mongo的相关信息,但是就是会出现这个 Warning: include_once(MongoClient.php): failed to open st ...

最新文章

  1. AI闯入法律界,第一步是当律师的得力助手
  2. 网络表述学习经典论文——DeepWalk
  3. 关于ASP无组件上传在2003下出错
  4. JQuery UI库 - Dialog
  5. java function获取参数_「Java容器」ArrayList源码,大厂面试必问
  6. python小结价格_036 Python进阶小结
  7. History of program (language).
  8. PyCharm中目录directory与包package的区别
  9. pycharms怎么看文件被什么引用_办公室文件柜怎么选,选购文件柜有什么窍门
  10. IntelliJ IDEA for Mac 在MacOS模式下的注释快捷键(Comment Shortcut)
  11. 有十五个数按由大到小顺序存放在一个数组中_「图形化编程」前导知识-数组(一)...
  12. 吴恩达《机器学习》第十章:应用机器学习的建议
  13. 卫星协同观测的学习笔记
  14. Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could
  15. JFreechart 在linux下不显示及中文乱码问题
  16. 转:java 进阶之路
  17. 知识图谱学习--网易云唐宇迪老师课程记录
  18. android主题编辑器,安卓 EMUI主题编辑器 Theme Editor For EMUI v1.13.5 专业版
  19. 计算机网络期末复习(学会不挂科)
  20. syswow64删除文件_Win7系统电脑中的Syswow64是什么文件夹?能不能删除?

热门文章

  1. java httpsession_JavaWeb:HttpSession
  2. java正整数正则表达式_Java 正则表达式
  3. exe打包工具,封装exe安装程序--Inno Setup
  4. 电力系统微型计算机继电保护试题及答案,2011年4月全国自学考试电力系统微型计算机继电保护试题答案...
  5. Xiaojie雷达之路---雷达原理(二刷)匹配滤波器
  6. 手机视频直播软件全面升级,直播APP源码全新功能体验
  7. Windows核心技术--com组件实用入门教程
  8. IIC协议超详细解释(适合小白入门)
  9. Lintcode 算法
  10. 我心中的微信小程序 韩俊强的博客