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

posted @ 2021-06-21 14:27  我是叮当啊  阅读(375)  评论(0编辑  收藏  举报