前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker使用笔记III -- docker的快速安装

docker使用笔记III -- docker的快速安装

作者头像
老高的技术博客
发布2022-12-28 10:32:17
1970
发布2022-12-28 10:32:17
举报
文章被收录于专栏:老高的技术博客

docker快速安装笔记

centos安装docker

ubuntu 参考Install Docker 其他系统可以参考Install Docker Engine

更新yum源

代码语言:javascript
复制
$ sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

安装docker

代码语言:javascript
复制
$ sudo yum install docker-engine -y

获取镜像

nginx php mysql

代码语言:javascript
复制
docker pull nginx:1
docker pull php:7-fpm
docker pull mysql:5

运行

代码语言:javascript
复制
# mysql
docker run -e MYSQL_ROOT_PASSWORD=laogao -p 3306:3306 -d mysql:5
# php
docker run -p 127.0.0.1:9000:9000 -d php:7-fpm
# nginx
docker run -d -p 8080:80 nginx:1

优化

这样我们启动了三个docker容器,不过到现在他们是没法一起工作的!

ps 老高在这里报错,address family not supported by protocol,原因是老高的虚拟环境禁用了IPV6,而php的docker配置中绑定端口使用了listen = [::]:9000,如果你也遇到这个问题,就需要将它改成listen = 0.0.0.0:9000即可!

首先,nginx在接到动态请求后会发送请求信息给php-fpm,之后php-fpm处理请求后返回给nginx, php在执行的时候可能会用到mysql数据库,他们之间可以使用文件交换数据,也可以使用网络交换数据。

在弄清楚了他们之间的关系后,我们尝试着修改上面的命令,已达到预期目标。

生成配置文件和测试文件

代码语言:javascript
复制
# 保存到/tmp/conf.d/default.conf
server {
    listen  80;
    root /usr/share/nginx/html;
    index index.php index.html;
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
        fastcgi_pass php-fpm:9000;
    }
}

# 保存到/tmp/html/index.php
<?php
phpinfo();

运行容器

代码语言:javascript
复制
# --name 表示将这个container命名

docker run -v /tmp/html:/usr/share/nginx/html --name php-fpm-container -d php:7-fpm

# --volumes-from 同时挂载php-fpm挂载的路径
# --link 表示将php-fpm-container,命名为php-fpm主机
# --link 会在nginx:1的/etc/hosts文件添加一条类似 172.11.11.11 php-fpm的条目,因为IP只有在运行时才确定,这个配置呼应了/tmp/conf.d/default.conf中的/tmp/conf.d/default.conf一行

docker run -d  -p 8080:80 -v /tmp/conf.d:/etc/nginx/conf.d --volumes-from php-fpm-container --link php-fpm-container:php-fpm nginx:1

Reference:

PHP-FPM + nginx version #54

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • centos安装docker
    • 更新yum源
      • 安装docker
      • 获取镜像
      • 运行
      • 优化
        • 生成配置文件和测试文件
          • 运行容器
          相关产品与服务
          容器镜像服务
          容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档