docker 安裝 lnmp
標簽(空格分隔): php,docker
安裝MySql
1 搜索鏡像
docker search mysql
2 安裝鏡像
docker pull mysql:5.7
3 創建鏡像並運行
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root --name mymysql mysql:5.7
參數:
-d 守護進程
-p 主機對容器的端口映射
-e 設置環境變量 mysqlroot用戶的初始密碼
--name 容器名字 但是必須是唯一
4 進入容器
docker exec -it mymysql /bin/bash
參數:
-t 在容器里模擬終端
-i 對容器內容標准輸出進行交互
5 進入mymysql容器進行用戶授權操作
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'root';
FLUSH PRIVILEGES;
安裝PHPFPM
1 拉取鏡像
docker pull php:7.1-fpm
2 創建容器
[創建主機映射容器的配置文件]
mkdir wwww
mkdir -p nginx/conf.d/default.conf
mkdir -p php/php.ini
docker run -d -p 9000:9000 -v $PWD/www:/usr/share/nginx/html -v $PWD/nginx/conf.d:/etc/nginx/conf.d --link mymysql:mysql --name myphpfpm php:7.1-fpm
參數:
-d 守護進程
-p 端口映射
-v 添加映射目錄
--name 制定容器名稱
--link 與另外一個容器建立起來聯系 這樣我們就可以在當前容器中去使用另外一個容器里的服務
3 在docker中安裝php擴展
進入docker容器
docker exce -it myphpfpm /bin/bash
安裝php擴展
docker-php-ext-install pdo_mysql
查看當前php安裝成功的擴展
php -m
退出修改主機剛剛創建的php.ini中添加
extension=php_pdo.dll
安裝Nginx
1 拉去鏡像
docker pull nginx
2 添加配置文件
server {
listen 80 default_server;
server_name _;
root /usr/share/nginx/html; # 主機創建的目錄
location / {
index index.html index.htm index.php;
autoindex off;
}
location ~ \.php(.*)$ {
root /usr/share/nginx/html/;
fastcgi_pass myphpfpm:9000; # 容器名稱加端口
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
3 創建運行nginx
docker run -p 8080:80 -d -v $PWD/www:/usr/share/nginx/html -v $PWD/nginx/conf.d:/etc/nginx/conf.d --name mynginx nginx
參數:
-p 端口映射
-d 守護進程
-v 目錄映射
基本命令
1 查看鏡像
docker images
2 查看進程
docker ps
3 啟動鏡像
docker start 鏡像名稱[mymysql|myphpfpm|mynginx]
3 停止鏡像
docker stop 鏡像名稱[mymysql|myphpfpm|mynginx]
4 殺死鏡像
docker kill 鏡像名稱[mymysql|myphpfpm|mynginx]
5 重啟鏡像
docker restart 鏡像名稱[mymysql|myphpfpm|mynginx]
6 刪除景象
docker rm 鏡像名稱[mymysql|myphpfpm|mynginx]