Docker容器

Windows docker

本文主要是介绍Windows docker,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

标题

下载的docker点击
在这里插入图片描述
登录阿里云找到镜像加速器把地址复制进去
在这里插入图片描述

开始安装nginx

docker search nginx

拉取官方的nginx

docker pull nginx

tips:系统会默认拉去最后一个nginx


查看镜像

docker images

第一种 启动一个nginx镜像 映射本地目录到nginx容器 需要自己创建目录

docker run -d -p 8080:80 --name nginx1 nginx
    -d:后台运行
    -p:设置端口号映射到本机,将 80 端口映射到本机的 8080 端口,外部访问8080端口即可
    --name:设置容器名称

在本地创建目录 映射docker文件到本地

在这里插入图片描述
nginx的结构目录在容器中:

docker cp 容器名:/etc/nginx/nginx.conf E:\docker\Docker\nginx\conf\

在这里插入图片描述

需要把conf.d下的default.conf 拷贝到本地主配置文件未知

docker cp nginx1:/etc/nginx/conf.d/default.conf E:\docker\Docker\nginx\conf.d\default.conf

如果你想在本地去添加location 需要把这些容器中的配置挂载到本地:

配置文件相对来说有点麻烦,一般nginx只需要加载nginx.conf就可以了,在dokcer中,是首先加载nginx.conf,然后在nginx.conf有这么一行include /etc/nginx/conf.d/*.conf;,就是加载conf.d目录下的配置文件。所以对于配置只需要挂载到conf.d,覆盖掉即可。
在这里插入图片描述
在这里插入图片描述
启动成功

我是直接拉取的docker hub的nginx镜像
在容器中相关位置分别是:
日志位置:/var/log/nginx/
配置文件位置:/etc/nginx/
主配置文件未知:/etc/nginx/conf.d
项目位置:/usr/share/nginx/html

接下来是关键
创建目录 到指定目录 当初我创建的时候多写了一个docker 憨derder

/docker/nginx/nginx/conf
/docker/nginx/nginx/conf.d
/docker/nginx/nginx/html
/docker/nginx/nginx/log

然后删掉停止stop nginx(nginx1 是启动时起的名字) 然后rm掉nginx在这里插入图片描述
重新运行nginx镜像

docker run -it -d -p 808:80 --name nginx1 
-v E:/docker/Docker/nginx/www:/usr/share/nginx/html #把项目放进去
-v E:/docker/Docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf 
-v E:/docker/Docker/nginx/conf.d:/etc/nginx/conf.d 
-v E:/docker/Docker/nginx/logs:/var/log/nginx 
#--link php1:php 
  nginx

命令说明:

  -p 808:80: 将容器的 80 端口映射到主机的 808 端口.

第一个-v:挂载项目目录
第二个-v:挂载配置目录
第三个-v:挂载主配置文件
第四个-v:挂载日志目录
–like 这一步就是让nginx和php关联起来 目前第一步安装的nginx 所以可以先注释

php和nginx类似随后补充

下载PHP7.3镜像
··· a. 命令:docker pull php:7.3
··· b. 因为同样要复制PHP的配置文件及日志文件,所以操作方法与mysql相同。复制出来的文件目录深度同样要退一层。
··· c. PHP的配置文件及日志文件目录地址:

配置文件:/usr/local/etc
日志文件:/usr/local/var/log
项目文件:/var/www/html  和nginx 可以使用一个目录

因为PHP有可能要多版本切换,所以这里的PHP容器重命名最好带有版本标识。
全命令:

docker run -d 
-v E:/docker/Docker/php/php-conf:/usr/local/etc 
-v E:/docker/Docker/php/php-log:/usr/local/var/log 
-v E:/docker/Docker/nginx/www:/var/www/html 
-p 9000:9000 
--name php1 #上文nginx中--link提到的php1 就是php的名字 下面那个php是拉取的php加tag
php:7.3-fpm

容器创建完成之后,进入容器,docker exec -ti php71 /bin/bash (如果需要VIM,安装方法同mysql)
安装PHP的扩展

命令1:docker-php-ext-install pdo_mysql
命令2:docker-php-ext-install mysqli

查看扩展是否已经安装。php -m

#查看php镜像的ip地址

docker inspect --format='{{.NetworkSettings.IPAddress}}' php1

记住一点需要修改conf.d下的default.conf

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost 127.0.0.1;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/local/nginx/html;
        index  index.html index.htm index.php;
    }

    #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   /var/www/html;  #php的目录  php启动的时候映射的目录是和nginx 映射的目录一直
        fastcgi_index  index.php;
        fastcgi_pass   php:9000;
        include        fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

这篇关于Windows docker的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!