docker 添加端口映射_Docker快速搭建PHP开发环境详细教程
想必作為一個web開發(fā)的程序員,近些年對docker技術一定不會陌生,docker 是一個開源的應用容器引擎,讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
使用docker主要有以下好處:
1. docker容器之間相互獨立,可以在一個服務器上面搭建多套環(huán)境。
2. docker容器內(nèi)有已經(jīng)部署好的軟件安裝環(huán)境,搭建集成環(huán)境相當方便。
本文就按照docker標準,搭建一個基于LAMP架構的PHP運行環(huán)境(MySQL、Nginx、PHP_FPM)。
安裝docker
1. 安裝docker,使用如下命令。
yum install docker2. 查看docker版本,檢測是否安裝成功。
docker --version3. 設置docker加速鏡像源,通過
vim /etc/docker/daemon.json設置如下內(nèi)容。
{"registry-mirrors":["http://hub-mirror.c.163.com"]}docker安裝MySQL
1. 從docker鏡像庫中拉取一個MySQL的鏡像到服務器。
docker pull mysql:5.62. 然后輸入命令 docker images 就可以查看查看我們剛剛拉下來的mysql的鏡像。
3. 運行并啟動一個容器,通過以下命令。
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456abc --name mysql_1 mysql:5.6參數(shù)說明:
-d 讓容器在后臺運行。
-p 添加主機到容器的端口映射。
3306:3306 把容器內(nèi)的3306端口映射到主機的3306端口,前面是主機的端口,后面是容器端口。
-e 設置環(huán)境變量,這里是設置mysql的root用戶的初始密碼,這個必須設置。
-MYSQL_ROOT_PASSWORD 設置訪問MySQL的密碼為123456abc。
–name 容器的名字,隨便取,但是必須唯一。
4. 接下來我們就可以通過命令docker ps -a 查看我們剛剛創(chuàng)建的容器。
這里我們可以看到我的容器狀態(tài)的Up狀態(tài),表示容器正在運行,并且把可以看到主機和容器的端口映射關系,如果容器啟動情況不正確,可以查看日志,通過以下命令命令。
docker logs -f -t --since="2018-09-20" --tail=10 mysql_1接下來,如果我們想進入剛剛創(chuàng)建的容器中,輸入如下命令。
附加:進入容器
docker exec -ti mysql_1 /bin/bash1參數(shù)說明 :
-t 在容器里生產(chǎn)一個偽終端。
-i 對容器內(nèi)的標準輸入 (STDIN) 進行交互。
容器中默認是沒有vim的,所以我們首先要安裝vim,需要注意的是安裝前記得先執(zhí)行apt update命令,不然安裝會出現(xiàn)問題。
進入到mysql容器后,我們通過創(chuàng)建一個遠程可以訪問的用戶,這樣我們就能從別的主機訪問到我們的數(shù)據(jù)庫了。
Docker安裝PHP-FPM
1. 拉取php-fpm的鏡像。
docker pull php:7.0-fpm2. 再創(chuàng)建一個php-fpm容器,開啟端口為9000,同時與上面安裝的mysql進行連接,才能夠協(xié)同工作。
docker run -d -v /var/nginx/www/html:/usr/share/nginx/html -p 9000:9000 --link mysql_1:mysql --name abc_phpfpm php:7.0-fpm參數(shù)說明:
-d 讓容器在后臺運行。
-p 添加主機到容器的端口映射。
-v 添加目錄映射,即主機上的。
/var/nginx/www/html和容器中/var/www/html目錄是同步的。
–name 容器的名字。
–link 與另外一個容器建立起聯(lián)系,這樣我們就可以在當前容器中去使用另一個容器里的服務。
備注:這里如果不指定–link參數(shù)其實也是可以得,因為容易本身也是有ip的且唯一,所以我們也可以直接利用ip去訪問容器。
安裝PDO擴展
#進入容器
docker exec -it phpfpm_1 /bin/bash#安裝pdo
docker-php-ext-install pdo_mysql#查看pdo是否安裝成功
php -m安裝Redis擴展,依次執(zhí)行如下命令
#下載資源包
curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/3.1.3.tar.gz#解壓資源包
tar xfz /tmp/redis.tar.gzrm -r /tmp/redis.tar.gzmkdir -p /usr/src/php/extmv phpredis-3.1.3 /usr/src/php/ext/redis#安裝擴展
docker-php-ext-install redisdocker安裝nginx
1. 首先,從倉庫里去拉取一個nginx鏡像。
docker pull nginx:1.10.32. 接下來運行nginx容器。
docker run -d -p 80:80 -p 443:443 -v /var/nginx/www/html:/usr/share/nginx/html --link phpfpm_1:phpfpm --name nginx_1 nginx:1.10.33. 配置nginx配置文件default.conf,在配置文件中增加以下行。
location ~ .+.php($|/) { set $script $uri; set $path_info ""; if ($uri ~ "^(.+.php)(/.+)") { set $script $1; set $path_info $2; } root /usr/share/nginx/html; fastcgi_pass phpfpm:9000; fastcgi_index index.php?IF_REWRITE=1; fastcgi_param PATH_INFO $path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $script; include fastcgi_params;}最后,在/var/nginx/www/html目錄下面新建一個index.php文件看看能不能訪問呢?今天的內(nèi)容就給大家講解到這里,有什么問題的歡迎下方留言喲!
每天進步一點點,更多精彩內(nèi)容,歡迎關注公眾號“編程社”!!!
總結
以上是生活随笔為你收集整理的docker 添加端口映射_Docker快速搭建PHP开发环境详细教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NVIDIA:显卡挖矿对社会一点用处都没
- 下一篇: 动态规划算法php,php算法学习之动态