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
vi ?/etc/docker/daemon.josn {"registry-mirrors":["https://hub-mirror.c.163.com/"]} 镜像分层技术,同类库不重新下载 ?
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
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 ?
? 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 ? 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 (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |