• docker 学习搭建 php 环境


    1.centos安装docker服务

    sudo yum install -y yum-utils

    sudo yum-config-manager

        --add-repo 

    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    sudo yum install docker-ce docker-ce-cli containerd.io

    1. 配置镜像加速

    vi  /etc/docker/daemon.josn

    {"registry-mirrors":["https://hub-mirror.c.163.com/"]}

    镜像分层技术,同类库不重新下载

    docker images 列出所有镜像

    docker ps 列出所有在运行容器

    -a 列出所有容器,包括没有运行的容器

    docker rm (container id or container name) 删除容器

    docker rmi (image id or image name:image tag  latest 可省略) 删除镜像

    docker pull (image name:image tag latest 可省略) 安装镜像

    docker run -d --name=mynginx -p 80:80/tcp nginx

    -d 后台运行

    --name 指定容器名称

    -p 指定映射端口

    -P 随机映射端口

    -v 数据挂载

    docker exec -it mynginx /bin/bash 进入容器

    nginx + php 部署

    启动PHP

    $ docker run --name  myphp-fpm -v ~/nginx/www:/www  -d php:5.6-fpm

    --name myphp-fpm : 将容器命名为 myphp-fpm

    -v ~/nginx/www:/www : 将主机中项目的目录 www 挂载到容器的 /www

    mkdir ~/nginx/conf/conf.d

     

    server {

        listen       80;

        server_name  localhost;

        location / {

            root   /usr/share/nginx/html;

            index  index.html index.htm index.php;

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   /usr/share/nginx/html;

        }

        location ~ .php$ {

            fastcgi_pass   php:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;

            include        fastcgi_params;

    }}

    启动nginx

    docker run --name runoob-php-nginx -p 8080:80 -d  -v ~/nginx/www:/usr/share/nginx/html:ro  -v ~/nginx/conf/conf.d:/etc/nginx/conf.d:ro  --link myphp-fpm:php   nginx

    -p 8083:80: 端口映射,把 nginx 中的 80 映射到本地的 8083 端口。

    ~/nginx/www: 是本地 html 文件的存储目录,/usr/share/nginx/html 是容器内 html 文件的存储目录。

    ~/nginx/conf/conf.d: 是本地 nginx 配置文件的存储目录,/etc/nginx/conf.d 是容器内 nginx 配置文件的存储目录。

    --link myphp-fpm:php: 把 myphp-fpm 的网络并入 nginx,并通过修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm。

    mysql

    docker pull mysql:5.6 拉取mysql5.6镜像

    创建mysql目录

    mkdir ~/nginx/mysql/data ~/nginx/mysql/logs ~/nginx/mysql/conf

    运行 mysql

    docker run -p 3306:3306 --name bdmysql -v ~/nginx/mysql/conf:/etc/mysql -v ~/nginx/mysql/logs:/logs -v ~/nginx/mysql/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d --link myphp7.3:php mysql:5.6

     

    安装并运行phpmyadmin

    docker run --name dbmyadmin -d --link bdmysql:db -p 8686:80 phpmyadmin/phpmyadmin

     

     

     

     

     

     

    1. docker-compse安装

    sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

    将可执行权限应用于二进制文件

    sudo chmod +x /usr/local/bin/docker-compose

    创建软连接

    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

    1. Docker Machine 安装

    base=https://github.com/docker/machine/releases/download/v0.16.0 &&

      curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&

      sudo mv /tmp/docker-machine /usr/local/bin/docker-machine &&

      chmod +x /usr/local/bin/docker-machine

    1. Docker Machine 创建

    centos不支持virtualbox驱动,所以使用generic

    需要先创建密钥

    ssh-keygen

    然后执行

    ssh-copy-id root@192.168.5.1 ip为本机地址

    最后执行创建主机

    docker-machine create -d generic --generic-ip-address=192.168.5.1 --generic-ssh-key ~/.ssh/id_rsa --generic-ssh-user=root vm

  • 相关阅读:
    Less与Sass
    JQuery基础
    JS中DOM以及BOM
    JS函数入门
    JS入门
    响应式布局和弹性布局,移动开发常用技巧
    CSS基础1
    H5入门
    error C2143: syntax error : missing ';' before 'type'
    Windows系统下nodejs安装及配置
  • 原文地址:https://www.cnblogs.com/hubudong/p/14913165.html
Copyright © 2020-2023  润新知