映射docker搭建

安裝docker參考 https://yeasy.gitbooks.io/docker_practice/content/install/ubuntu.htmlphp

拉取ubuntu16.04 做爲基本鏡像
```
docker pull ubuntu:16.04
```html

建個空目錄 ,建立Dockerfile
```
# vi Dockerfilemysql

FROM ubuntu:16.04nginx

RUN apt update && apt install -y \
nginx \ 
php \ 
php-mysql \ 
php-memcached \ 
php-msgpack \
php-mbstring \
php-dom \ 
php-zip \
php7.0-dev \
composer \
wget \ 
unzip \
re2c \
libgearman-dev \
# 刪除apt緩存
&& rm -rf /var/lib/apt/lists/* \
# 刪除nginx默認配置
&& rm -rf /etc/nginx/sites-enabled/default \
# 建立默認的日誌目錄
&& mkdir -p /opt/log \
&& chown www-data /opt/log -R
COPY be-report /etc/nginx/sites-enabledgit

RUN mkdir -p /tmp/install \
&& cd /tmp/install \
&& wget https://github.com/wcgallego/pecl-gearman/archive/master.zip \
&& unzip master.zip \
&& cd pecl-gearman-master \
&& phpize \
&& ./configure \
&& make install \
&& echo "extension=gearman.so" > /etc/php/7.0/mods-available/gearman.ini \
&& phpenmod -v ALL -s ALL gearman \
&& php -m | grep gearman
ENTRYPOINT service nginx start && service php7.0-fpm start && /bin/bash
EXPOSE 80
```github

建立默認的nginx配置,文件名be-report
```
# vi be-reportsql

server {
listen 80;
server_name _;
root /var/www/html/be-report/public/;
index index.php;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}docker

location ~ ^(.+\.php)(.*)$ {
alias /var/www/html/be-report/public/;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_read_timeout 9999999999;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $DOCUMENT_ROOT$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT/$fastcgi_script_name;
include fastcgi_params;
}bootstrap

location / {
rewrite ^(.*)$ /index.php/$1 last;
}
}
```
從Dockerfile建立鏡像,鏡像名爲 be-report
```
docker build -t be-report .
```
從鏡像運行容器
```
#/home/xj3hj2/docker/ 需根據代碼位置調整
docker run -it -p 8054:80 -v /home/xj3hj2/docker/be-report:/var/www/html/be-report -v /opt/wwwroot/conf/:/var/www/conf/ be-report /bin/bashubuntu

# -p 8054:80 將本地的8054映射到容器的80端口
# -v 本地目錄:容器目錄 將本地的代碼目錄映射到容器中,默承認讀可寫
```
#運行後進入了容器的bash 
```
cd /var/www/html/be-report && composer install 
```
結束後,ctrl+p 再 ctrl+q 退出容器

退出容器後在本機配置nginx轉發
sites-enabled/default 的
server dev.tob.ifchange.com 那一段
裏增長:
```
location /v2/ {
proxy_pass http://report.ats.v2.dev.ifchange.com;
proxy_set_header Host $http_host;
}
```
conf.d/upstream.conf裏增長
```
upstream report.ats.v2.dev.ifchange.com{
server localhost:8054;
}
```
測試:
http://dev.tob.ifchange.com/v2/account/cache


備註:
```
#查看全部容器,運行和未運行的
docker ps -a
#容器啓動 中止
docker start/stop 容器名
#容器刪除
docker rm 容器名

#查看全部鏡像
docker images
#刪除鏡像
docker rmi 鏡像名 //須要沒有關聯的容器

#tob-resume-servicecp bootstrap/autoload.php.example bootstrap/autoload.php編輯 bootstrap/autoload.php 最前面 define('ENV', 'dev')```

相關文章
相關標籤/搜索