一開始沒有思路,直接用寶塔一鍵搭建的Docker
服務(wù)器環(huán)境:CentOS 7.6
說下體驗(yàn):
通過安裝進(jìn)度還是有些報(bào)錯出現(xiàn)的,但是一向“兼容不錯的寶塔”還是對他抱有一線希望。
最后還是安裝成功了。
?裝好了,如何使用?
Docker 是基于命令行使用的,那現(xiàn)在通過一些實(shí)際問題去使用一些命令!
1.首先查看是否安裝成功。通過查看版本好去驗(yàn)證吧!
docker version
?
?運(yùn)行成功,“寶塔”還是很厲害的。
2.1.Docker 下載 PHP鏡像
本來想學(xué)習(xí)部署go環(huán)境的,但是為了避免程序出錯,還是選擇了熟悉的PHP。建議大家也選擇自己熟悉環(huán)境,避免坑太多。
Docker是有云鏡像的,可以這么理解,所有的環(huán)境都可以通過搜索關(guān)鍵詞去安裝。
docker search php?
接下里看到是“php” 相關(guān)的搜索結(jié)果
?結(jié)果只列出了相應(yīng)軟件,但是我們需要獲得相應(yīng)的版本號才能更好的去配置,比如:php5.3/php5.4/php5.5/php7.0
通過命令找比較麻煩,目前沒有最好的方式,需要的話可以到Docker的官網(wǎng)去查詢。
搜索地址:https://hub.docker.com/_/php/tags
當(dāng)然國內(nèi)無法訪問,那么只有通過“搜索引擎”去了解相應(yīng)版本號了
docker pull php:7.4-fpm
獲取PHP鏡像,后面的數(shù)字可以指定PHP的版本,目前安裝的是PHP7.4
docker images
查看安裝的鏡像列表
docker images php
查看php的信息
在這里?IMAGE ID 是一個重要信息,通過前幾位例如“38f2”來創(chuàng)建容器
2.3.創(chuàng)建容器,Docker 部署 PHP容器
現(xiàn)在我們需要創(chuàng)建PHP的容器,并且啟動PHP。
docker run --name php-test -v /usr/local/nginx/html:/www -p 9000:9000 -d 38f2
命令解釋
- docker run : 是創(chuàng)建一個新容器并運(yùn)行一個命令
- --name : 給容器起一個名字,指的是 php-test
- -p : 指定宿主機(jī)與容器內(nèi)部端口的映射關(guān)系,-p [宿主機(jī)端口]:[容器內(nèi)部端口],我設(shè)置的是 9000:9000,注意測試80端口是還容易沖突。
- -d : 設(shè)置容器在在后臺一直運(yùn)行
- 最后面的 PHP 是鏡像名稱,也可以是鏡像ID,例如上面提到的 “38f2”
docker rm php-test
以上為刪除容器,由于端口有沖突,需要刪除從新創(chuàng)建。
?容器安裝完畢
再次需要注意的是端口沖突和端口安全組規(guī)則,一般沒問題,此處需要注意
3.1 nginx的配置,與PHP類似,不懂可反復(fù)查看PHP
docker search nginx
查看Nginx的鏡像列表
docker pull nginx
獲取Nginx 鏡像
docker run --name nginx-test -p 8089:8089?-d nginx
啟動容器,在寶塔面板“安全”內(nèi),做放行處理,否則會有端口沖突。
docker ps
查看正在運(yùn)行的容器
docker ps -a
查看所有容器
docker stop?4a9015fc1b2a
停止容器,4a9015fc1b2a是CONTAINER ID,通過“docker ps”查看
docker start 6414e8b2ee30
運(yùn)行容器,6414e8b2ee30是CONTAINER ID,通過“docker ps”查看
在此nginx安裝上了,但是通過外網(wǎng)是無法訪問的。
在此卡殼了,為了打開思路,下面繼續(xù)了解下nginx配置相關(guān)的內(nèi)容了,帶著“端口”相關(guān)的疑惑繼續(xù)配置吧!
修改nginx的配置文件
nginx是在docker中配置的,所有也是需要在docker中修改的。
docker exec -it 641 /bin/bash
進(jìn)入nginx容器命令行
命令解釋
- docker exec :?在運(yùn)行的容器中執(zhí)行命令。
- -it :?-i和-t兩個參數(shù)配合使用,開啟一個交互模式的終端。
- 641?:?名稱為nginx-test容器ID。
- /bin/bash :?指定了執(zhí)行命令的shell。
exit
退出容器命令行
docker cp 6414:/etc/nginx/nginx.conf /usr/docker/nginx
docker cp?
6414:/etc/nginx/conf.d/default.conf /usr/docker/nginx/conf/
6414?為容器ID,復(fù)制容器內(nèi)的文件到外部。
docker run --name nginx-config -p 8089:8089 \
-v /usr/docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/docker/nginx/logs:/var/log/nginx \
-v /usr/docker/nginx/html:/usr/share/nginx/html \
-v /usr/docker/nginx/conf:/etc/nginx/conf.d \
--privileged=true -d nginx
從新配置一個容器,并將它的一些文件鏡像主機(jī),方便編輯
一些小插曲
就目前為止,容器的部署,啟動,關(guān)閉,卸載,進(jìn)程查看都沒問題了,但是最后Nginx 始終不能正常訪問,在此拋下疑問尋找突破點(diǎn)。
1.docker下的進(jìn)程能否在shell下查看
2.nginx 刪除 配置文件是否會報(bào)錯,(算是互動了解了,因?yàn)榫湍壳盀橹怪恢腊惭b了,但是沒看到任何有跡可循的思路,哪怕是報(bào)錯都沒有。)
3.翻閱現(xiàn)有站點(diǎn)對nginx 配置文件做對比。(這個思路還是不錯的,好歹有個參考點(diǎn))
通過常規(guī)方式新建了一個站點(diǎn),確保了一個端口是開放的,這下可以排除端口限制的問題了。
從新配置一個容器
docker run --name nginx-test-two -p 8090:8090 -d nginx
還是不行
下面nginx配置文件做對比,還是要先了解nginx的配置文件。
最后找到原因,nginx默認(rèn)生成的配置文件“default.conf”端口不對,為啥是80呢(坑)
修改為8089后可以正常訪問了。
通過nginx訪問php
通過走上面的彎路還有一些坑,我想下面應(yīng)該會順利些了。
首先刪除銷毀之前配置的容器,這些請看上邊的,停止--》刪除容器
PHP配置
docker run --name php-test -v /usr/local/nginx/html:/www -p 8089:8089?-d 38f
新建php模塊,注意 -d 是鏡像ID,通過 docker images 查看文章來源:http://www.zghlxwxcb.cn/news/detail-697566.html
-
-v:??掛載目錄, 此處?
/usr/local/nginx/html
目錄為宿主機(jī)存放文件目錄,/www
為PHP容器內(nèi)存放文件目錄。
Nginx配置
在此卡殼,配置完成 提示成功還是無法訪問PHP文件,靜態(tài)文件可以訪問。文章來源地址http://www.zghlxwxcb.cn/news/detail-697566.html
到了這里,關(guān)于Docker的配置和部署,并搭建php和nginx環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!