# Docker 部署 Nginx服务已经证书整合 --- 首先》先从docker 中获取nginx镜像(默认是latest) 然后》创建可以映射到云服务器中的文件夹,推荐用服务器自带的www文件夹来做映射(没有就自行创建) 接着》先运行一个测试的容器自定义命名 随后》复制里面的配置文件到准备映射的文件夹中 接着》将测试容器删除。接着创建一个正式使用的容器 剩下的就是进行服务配置了。 步骤代码: ``` docker pull nginx ``` 创建文件夹 ``` mkdir /www/nginx/conf mkdir /www/nginx/conf.d mkdir /www/nginx/html mkdir /www/nginx/log mkdir /www/nginx/conf/key ``` 测试容器 ``` docker run -it -p 80:80 -p 443:443 --network NginxNetwork -name nginxtest -d nginx:latest ``` 复制配置文件 ``` docker cp nginxtest:/etc/nginx/nginx.conf /www/nginx/conf/nginx.conf docker cp nginxtest:/etc/nginx/conf.d /www/nginx docker cp nginxtest:/usr/share/nginx/html /www/nginx ``` 上传证书,通过工具上传到指定文件夹下即可。 随即删除测试容器,做正式使用的容器 ``` docker run --name nginx -p 80:80 -p 443:443 --network NginxNetwork --privileged --restart=always \ -v /www/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /www/nginx/conf.d:/etc/nginx/conf.d \ -v /www/nginx/html:/usr/share/nginx/html \ -v /www/nginx/log:/var/log/nginx \ -v /www/nginx/conf/key:/etc/nginx/key \ -d nginx:latest ``` 如果启动状态不对,就查看日志。 要么就是说容器没有指定的文件夹。要么就是没有指定的配置文件。 docker cp /www/nginx/conf/key 容器名:/etc/nginx/key 随即进行服务配置。最后进行重启容器即可。 #拉镜像 docker pull jenkins/jenkins #创建卷(volume) docker volume create jenkins_home #制作容器并启动 docker run -d \ -p 8080:8080 \ -p 50000:50000 \ -v jenkins_home:/var/jenkins_home \ -v /usr/lib/jvm/java-8-openjdk-amd64:/usr/local/java \ -v /home/holen/.local/share/apache-maven-3.6.3:/usr/local/maven \ --name jenkins-quick \ jenkins/jenkins ``` docker run -d \ -p 8080:8080 \ -p 50000:50000 \ -v jenkins_home:/var/jenkins_home \ -v /usr/lib/jvm/java-11-openjdk-11.0.18.0.9-0.3.ea.el8.x86_64:/usr/local/java \ -v /root/server/apache-maven-3.9.3:/usr/local/maven \ --name jenkins-quick \ jenkins/jenkins:lts-jdk11 ``` #访问Jenkins http://localhost:8080 项目部署: N个项目后端口 一个Jenkins管理口 一个Nginx服务端口 一个Gitea服务端口 统计网段: 172.17.0: Gitea 、Jenkins 172.18.12: Nginx 172.13.19: N个项目端口 配置步骤: 创建docker 网络 ``` docker network create -d bridge --subnet=172.20.12.0/10 --gateway=172.20.12.1 NginxNetwork ``` 连接两个网段 ``` docker network connect my-network-1 my-container-2 // 这里是在某个网段中添加其他网段的容器在这个网段中。同理,另外一个网段的容器也是。 ``` 断开两个网段 ``` docker network disconnect my-network-1 my-container-2 ``` ``` docker run --name nginx -p 80:80 -p 443:443 --network NginxNetwork --privileged --restart=always \ -v /www/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /www/nginx/conf.d:/etc/nginx/conf.d \ -v /www/nginx/html:/usr/share/nginx/html \ -v /www/nginx/log:/var/log/nginx \ -v /www/nginx/conf/key:/etc/nginx/key \ -d nginx:latest docker run --name nginx -p 80:80 -p 443:443 -d nginx:latest docker run --name nginx -p 80:80 --privileged --restart=always \ -v /www/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \ -v /www/nginx/conf.d:/etc/nginx/conf.d:rw \ -v /www/nginx/html:/usr/share/nginx/html:rw \ -v /www/nginx/log:/var/log/nginx \ -d nginx ``` 复制文件夹到容器内部 ``` docker cp /path/to/local/directory container-id:/path/to/container/directory ```