As pessoas têm a coragem de dizer que eles são originais, eu também serviu, poços e mais, temos modificado
Eu construí a php7
docker 安装php,nginx,redis,mysql容器并且link起来
docker pull mysql
docker pull nginx
docker pull redis
docker pull php:7.0-fpm
需要制定版本的可以像php那样加版本号,没加的就是最新的
Ambiente de funcionamento
MacBook Pro, OSX 10.13.6
início php-fpm
interpretado php necessidade php-fpm, deixá-lo instalado e funcionando:
docker run --name php7 -d -v /home/www:/www/wwwroot php:7.0-fpm
解释执行 php 需要 php-fpm,先让它运行起来:
说明:
php7 是容器的名字
~/home/lnmp/www 宿主机目录
/www/wwwroot 目录名字
启动mysql
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6
加版本,如果上面没有的话又会下载一遍
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql
所以最好不要加版本
nome do recipiente -nome
nome personalizado mysql
-p: porta de exposição, o mapeamento da porta (mapeamento pode ser várias portas) portas externas: no interior da porta do contentor
-p 3306: mapeamento da porta 3306
-E: definir quaisquer variáveis do ambiente (o vaso)
MYSQL_ROOT_PASSWORD = root aqui refere-se a definir a senha de banco de dados para a raiz
Redis início
docker run --name redis -p 6379:6379 -d redis
Redis nome personalizado
-p 6379: 6379 mapeamento de portas, ou seja, portas externas: um porto de contentores
Redis: Últimas nome da imagem: Versão
dentro nginx, php-fpm, mysql, Redis ligação recipiente
docker run --name nginx --link mysql:db --link redis:redis --link php7:php -p 80:80 -v /home/www:/www/wwwroot -d nginx
Edite o arquivo de configuração nginx
O navio cp janela de encaixe conf.d em um arquivo de configuração para o local, default.conf
janela de encaixe cp nginx: /etc/nginx/conf.d/default.conf default.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /www/wwwroot;
index index.php index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /www/wwwroot;
fastcgi_pass 172.17.0.2:9000; #php-fpm容器的ip,端口9000
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/wwwroot/$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
查看容器ip 的方法
docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-ID>
或
docker inspect <container id>
或
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id!
Modificar a cópia pode voltar estivador cp default.conf nginx: /etc/nginx/conf.d/default.conf
Estes são meu perfil
lançamento recipiente
janela de encaixe começar nginx
fechado recipiente
parada estivador nginx
reiniciar o recipiente
janela de encaixe restart nginx
recipiente de exclusão
estivador rm nginx
no recipiente
janela de encaixe exec -é nginx / bin / bash
recipiente estado
janela de encaixe estado nginx
espelho retrovisor
Docker ImagesRF Royalty Free
recipiente Docker para ver correr
janela de encaixe ps
visualizar todos os recipientes
janela de encaixe ps -a
remover o espelho
janela de encaixe rmi nginx
exportação exportação
1. primeiro verificar todos os recipientes
sudo ps docker -a
2. encontre recipiente ID de contêiner de exportação, e em seguida, executar o comando
sudo recipiente janela de encaixe exportação recipiente ID> export nome do arquivo endereço
que é
exportação janela de encaixe sudo 234wer2323dfdfdsfq> /home/export.tar
Import Import
/home/export.tar CAT | sudo Docker Import - lanmps: Últimas
salvar Salvar
o comando Salvar para a imagem persistente (não o recipiente)
1. O primeiro verificar todos os espelhos
sudo imagens docker
2. Encontre a imagem que deseja salvar o nome do
sudo janela de encaixe save nome da imagem> para salvar o endereço do nome do arquivo
que é
sudo janela de encaixe salvar lanmps> /home/save-lanmps.tar
carregado
de carga janela de encaixe </home/save-lanmps.tar
última visita localhost: 8888 no pode mostrar acesso ao diretório
usando Redis
Para usá-lo você deve instalar Redis Redis recipiente em extensão php
Redis prolongado conexão de download
phpize
./configure
make instalar o make &&
esta instalação compilador tempo, e depois gera uma extensão redis.so deste tempo para pedir seu perfil onde está?
Sua /usr/local/etc/php/conf.d perfil jogado diretamente abaixo
redis.ini nome do arquivo
de extensão = / usr / local / lib / php / extensões /-no-depuração não-ZTS-20170718 / redis.so
restart recipiente php-fpm
Docker o reinício php72
localhost: 8888 / index.php
echo o phpinfo () ;
Encontrar extensão Redis foi instalado
para as seções de gravação do código-lo
o Redis Redis novo new = $ ();
$ redis-> Connect ( '172.17.0.5', 6379); // navio IP
// print_r ($ Redis); Die;
$ = strName 'Push';
$ Re = $ redis- > publicar ($ strName "a partir de pequenas séries para escrever seu próprio {$ strName} empurrão!");
echo "{$ strName} ---- ----- empurrão bem sucedido /> <br";
$ redis-> privacidade close ();
MySQL usar
o try {
$ DB = new new PDO ( 'MySQL: host = 172.17.0.4; dbname = Test', 'raiz', 'raiz');
$ ARR = $ db-> query ( "SELECT * FROM user ") -> fetch ();
var_dump ($ ARR); Die;
} o catch (PDOException $ E) {
Imprimir" Erro: a "" $ E-> a getMessage () .. "
Die ();
}
Original: https: //blog.csdn. net / qq_36373262 / article / details / 79727223
próprio pro-teste, parte do poço foi preenchido