環境:操作系統(Ubuntu 16.04 64位); php7.1; nginx/1.14.0
基礎環境准備:
整體思路:docker pull一個ubuntu鏡像,然后在容器中安裝nginx,PHP,啟動時將宿主機中的數據目錄,配置文件映射到容器中,映射宿主機端口到容器中端口。
#拉取ubuntu鏡像
Docker pull ubuntu
#啟動ubuntu容器
docker run -it —name myserver ubuntu /bin/bash
#進入容器中,退出可以使用exit,容器仍然運行
Docker exec -it myserver /bin/bash
容器中安裝nginx:
#安裝軟件前務必更新源,否則會出現找不到安裝包
apt-get update
#安裝nginx
apt-get install nginx
容器中安裝PHP:
sudo apt-get install -y language-pack-en-base locale-gen en_US.UTF-8 sudo apt-get install software-properties-common sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get -y install php7.1 sudo apt-get -y install php7.1-mysql sudo apt-get install php7.1-fpm apt-get install php7.1-curl php7.1-xml php7.1-mcrypt php7.1-json php7.1-gd php7.1-mbstring
至此容器的基礎環境(nginx+php)搭建好了。
接下來我們把剛才的容器做成一個鏡像,然后以這個鏡像來做接下來的操作。
首先用docker ps查詢容器的ID,然后執行下面命令,將容器做成鏡像
提交鏡像:
docker commit-m“ubuntu+nginx+php"-a“dadong"0d358e48211c79 myserver
1、創建容器:
docker run --name myserver -p 9001-9020:9001-9020 -v /data:/data -v /etc/nginx:/etc/nginx -v /etc/php/7.1:/etc/php/7.1 -it 1023495336/linux
注意:如果需要退出容器,使用快捷鍵ctrl+p+q
2、修改配置文件
修改配置文件的域名,端口
修改docker配置文件可以在宿主機中的映射文件修改,然后到docker容器中重啟nginx
service nginx reload
3、修改宿主機nginx配置文件,實現域名訪問docker容器中項目。
在nginx配置文件/etc/nginx/conf.d下創建以.conf結尾的配置文件,內容如下:
server { listen 80; server_name aaa.100wlc.com; location / { proxy_pass http://172.16.237.125:9030; ##宿主機IP:宿主機端口(宿主機映射的容器端口) } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
重啟宿主機nginx