windows10 安装docker 运行linux 容器安装nginx和配置并部署项目

首先docker安装,从官网上下载Docker Desktop 安装

1.拉取nginx镜像

#进入终端执行或者从docker desktop首页直接点击运行(会自动执行拉取),如下图
docker pull nginx
#查看docker 镜像,就能看到拉取的nginx镜像了
docker images

 

 

 2.运行一个nginx容器,并映射本地相关文件目录

##本地创建相关目录,我这里放到D盘Docker文件下,方便我管理
nginx   #主目录
nginx/logs #创建日志目录
nginx/www #站点存放目录
nginx/conf.d #相关站点配置目录
nginx/cert #配置证书存储目录


##运行有一个容器
docker run --name nginx-test  -p 80:80  -d nginx   #运行容器
#进入到nginx-test容器中查看需要挂载的文件
docker exec -it nginx-test /bin/bash
#拷贝一些常用的nginx文件到上面创建的目录中,与本地相映射
docker cp nginx-test:/etc/nginx/nginx.conf D:\Docker\nginx   #nginx 默认配置文件
docker cp nginx-test:/etc/nginx/conf.d D:\Docker\nginx    #nginx配置文件夹
docker cp nginx-test:/usr/share/nginx/html D:\Docker\nginx\www   #nginx的html文件


*********************************注意注意Linux 环境部署一致****************************
创建相关目录

mkdir -p \
/nginx/www \
/nginx/conf.d \
/nginx/logs  \
/nginx/cert

//拷贝对应的文件,拷贝时,需要先运行一个nignx容器
sudo docker cp nginx:/etc/nginx/nginx.conf /nginx   #nginx 默认配置文件
sudo docker cp nginx:/etc/nginx/conf.d /nginx    #nginx配置文件夹
sudo docker cp nginx:/usr/share/nginx/html /nginx/www  

//删除之前的容器,重新运行一个容器并启动容器
docker run --name nginx -dit -p 80:80 -v /nginx/nginx.conf:/etc/nginx/nginx.conf -v /nginx/conf.d:/etc/nginx/conf.d -v /nginx/www:/usr/share/nginx/html -v /nginx/cert:/etc/nginx/cert -v /nginx/logs:/var/log/nginx -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 --privileged=true --restart=always nginx

 3.停止并删除nginx-test容器,重新运行一个新的nginx容器启动时,映射本地相关目录

#停止nginx-test容器
docker stop nginx-test

#删除nginx-test容器
docker rm nginx-test

##创建一个新nginx 容器
docker run --name nginx -d -p 80:80 -v D:\Docker\nginx\nginx.conf:/etc/nginx/nginx.conf -v D:\Docker\nginx\conf.d:/etc/nginx/conf.d -v D:\Docker\nginx\www:/usr/share/nginx/html -v D:\Docker\nginx\cert:/etc/nginx/cert -v D:\Docker\nginx\logs:/var/log/nginx -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 --privileged=true --restart=always nginx

 4.在浏览器中访问127.0.0.1,直接访问到www目录下index,html

5.容器间相互访问(docker bridge自定义网络)

##创建bridge自定义网络
docker network create test 或docker network create --driver bridge  test

#查看创建的网络是否存在
docker network ls 


#把已存在容器加入网络或者重新运行新容器加入网络
docker network connect test --alias nginx-test nginx-test 
或
docker run --name nginx-test -d  --privileged=true --network test --network-alias nginx-test -p 80:80   -v D:\Docker\nginx\nginx.conf:/etc/nginx/nginx.conf -v D:\Docker\nginx\conf.d:/etc/nginx/conf.d -v D:\Docker\nginx\www:/usr/share/nginx/html -v D:\Docker\nginx\cert:/etc/nginx/cert -v D:\Docker\nginx\logs:/var/log/nginx -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 --privileged=true --restart=always nginx 


##再启动一个webapi容器
docker run --name webapi -d  --privileged=true --restart=always --network test --network-alias webapi -p 80:80  webapi
#最后面nginx-test反向代理调用webapi
   location /api/ {
        proxy_pass   http://webapi:80;
    }


##把webapi容器移除自定义网络
docker network disconnect  test webapi


##如果要修改容器启动项,则可以使用  docker update 
 docker update adminapi --restart always  #这表示设置容器随着docker启动自动启动

 6.访问成功

 

猜你喜欢

转载自blog.csdn.net/u010784529/article/details/125007848