- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Docker Nginx容器制作部署实现方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
快速开始 。
1.查找 Docker Hub 上的 nginx 镜像 。
docker search nginx 。
2.拉取官方的Nginx镜像 。
docker pull nginx 。
3.在本地镜像列表里查到 REPOSITORY 为 nginx 的镜像 。
docker images nginx 。
REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 4bb46517cac3 4 weeks ago 133MB 。
4.以下命令使用 NGINX 容器内的默认的配置来启动一个 Nginx 容器实例:
。
。
其中,该命令的四个命令行参数的含义如下.
5.查看启动的docker容器 。
docker container ps 。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES acb0e263dff3 nginx "/docker-entrypoint.…" 10 seconds ago Up 9 seconds 0.0.0.0:8080->80/tcp nginx-test 。
6.在浏览器访问,我这边是腾讯云主机,访问公网ip+端口即可 。
在浏览器中打开http://公网ip:8080,效果如下. 。
部署服务 。
1.创建本地目录,用于存放Nginx的相关文件信息. 。
mkdir -p /home/nginx/www /home/nginx/logs /home/nginx/conf 。
其中:
2.拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录,容器ID可以查看 docker ps 命令输入中的第一列:
docker ps 。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES acb0e263dff3 nginx "/docker-entrypoint.…" 10 seconds ago Up 9 seconds 0.0.0.0:8080->80/tcp nginx-test 。
docker cp acb0e263dff3:/etc/nginx /home/nginx/conf 。
3.把此容器停止 。
docker container stop nginx-test 。
注意进入容器命令:docker exec -it nginx-test /bin/bash 。
4.部署命令 。
1
2
3
4
5
|
docker run --
rm
-d -p 8080:80 --name nginx-
test
-web \
-
v
/home/nginx/www
:
/usr/share/nginx/html
\
-
v
/home/nginx/conf/nginx
:
/etc/nginx
\
-
v
/home/nginx/logs
:
/var/log/nginx
\
nginx
|
命令说明:
5.启动以上命令后进入 /home/nginx/www 目录:
cd /home/nginx/www/ vi index.html 。
1
2
3
4
5
6
7
8
9
10
11
|
<!DOCTYPE html>
<html>
<
head
>
<meta charset=
"utf-8"
>
<title>Nginx
test
!!!<
/title
>
<
/head
>
<body>
<h1>我的第一个标题<
/h1
>
<p>我的第一个段落。<
/p
>
<
/body
>
<
/html
>
|
。
6.在浏览器访问 。
在浏览器里面输入http://公网ip:8080/,输出结果如下,如果在访问时出现403错误,应该是index.html文件权限不足,给成644就行. 。
支持HTTPS、HTTP2 。
1.在/home/nginx/conf/nginx下目录下新建一个子目录certs 。
mkidr certs 。
2.生成证书 。
。
1
2
3
4
5
6
7
|
openssl req \
-x509 \
-nodes \
-days 365 \
-newkey rsa:2048 \
-keyout example.key \
-out example.crt
|
上面命令的各个参数含义如下.
创建成功目录会多出两个文件:example.key和example.crt.
3.HTTPS配置 。
在/home/nginx/conf/nginx/conf.d目录下创建https.conf文件,写入如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
server {
listen 443 ssl http2;
server_name localhost;
ssl on;
ssl_certificate
/etc/nginx/certs/example
.crt;
ssl_certificate_key
/etc/nginx/certs/example
.key;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root
/usr/share/nginx/html
;
index index.html index.htm;
}
}
|
4.部署服务 。
1
2
3
4
5
|
docker run --
rm
-d -p 8080:80 -p 8081:443 --name nginx-
test
-web \
-
v
/home/nginx/www
:
/usr/share/nginx/html
\
-
v
/home/nginx/conf/nginx
:
/etc/nginx
\
-
v
/home/nginx/logs
:
/var/log/nginx
\
nginx
|
5.快速测试 。
http://公网ip:8080/:访问http https://公网ip:8081/:访问https 。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://www.cnblogs.com/-wenli/p/13650392.html 。
最后此篇关于Docker Nginx容器制作部署实现方法的文章就讲到这里了,如果你想了解更多关于Docker Nginx容器制作部署实现方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我在 *.sql 文件中得到了我的数据库转储(表、函数、触发器等)。此时我正在通过 jenkins 部署它们,通过传递执行 shell 命令: sudo -u postgres psql -d my_
我正在使用网络部署 API 来部署网络包(.zip 文件,由 MSDeploy.exe 创建)以编程方式将包发布到服务器(在发布包之前我们需要做一些其他事情这就是为什么我们不使用 MSDeploy.e
我们正在使用 Web Deploy 3 的(几乎完全未记录的)“公共(public) API”来创建我们网站的 .zip 包,然后将其同步到服务器: DeploymentBaseOptions des
将 clojure 应用程序制作成可执行文件的最简单方法是什么,例如 http://rawr.rubyforge.org/ ruby 吗? (exe 和 app 文件也是) 最佳答案 使用 leini
是否可以下载 Android 源代码并针对任何设备进行编译? 我想做的是尝试 GSM 代码部分并编译操作系统并将其部署到我的摩托罗拉手机上。 谢谢! 最佳答案 是的,但这很难,因为大多数手机不共享驱动
我正在考虑用 c/c++ 编写需要在大多数个人计算机上运行的 nbody 样式模拟。本质上是一个 O(n^2) 粒子模拟器。 因为这需要相当用户友好,所以我希望有 1 个不需要用户安装任何东西的 Wi
需要了解 kubernetes 部署中 kube_deployment_status_replicas 和 kube_deployment_spec_replicas 指标的区别 最佳答案 简而言之,
我正在尝试使用分类器部署 Maven Artifact 。由于我需要源代码和 JAR(我从 GWT 使用它),我想获得 artifact-version-classifier.jar 和 artifa
我设置部署以将我的项目代码与存储我的网站的 FTP 服务器上的项目同步。 但是,每次尝试同步时,我总是必须登录。 我什至检查了记住,但它不起作用! 我正在使用最新的 PhpStorm 2017.1.4
我在 Visual Studio 2008 中开发了一个 ASP.NET 网站。现在我想在其他机器上部署它。我怎样才能做到这一点??就像我们为 Windows 应用程序制作安装包一样,我们可以为 AS
将 QT 框架添加到我的 .app 包中 我正在关注 Qt 站点上关于部署的文档。 我创建了一个名为 HTTPClient.app 的应用程序 我在 Contents 下创建了 Framework 文
这个问题不太可能对任何 future 的访客有帮助;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于互联网的全局受众。如需帮助使这个问题更广泛适用,visit the h
我正在研究改变我目前创建营销网站的策略。目前,我完全用 PHP 从头开始构建网站,使用一个简单的包含系统。所有代码(以及内容)都存储在文件(而不是数据库)中,允许我使用 Subversion 进行
我有一个长期运行的服务(在 while 1 循环中)并通过 GCloud pub/sub 处理有效负载,之后它将结果写入数据库。 该服务不需要监听任何端口。 Kind=Deployment 的声明性
似乎部署已停滞不前。我该如何进一步诊断? kubectl rollout status deployment/wordpress Waiting for rollout to finish: 2 ou
我正在Dart中使用前端的Angular和后端的Shelf构建一个客户端/服务器应用程序。当我执行pub build时,它会按预期生成Dart文件的javascript,但不会替换HTML文件中的Da
我在 Azure 部署中心的下拉列表中看不到我的所有 Github 组织存储库。 Azure 很久以前就已经被授权了,下拉列表正确地显示了所有的存储库,直到上周我在 DevOps 中玩游戏时,不得不再
我认为标题几乎说明了一切...对于 Deployd 来说是全新的,所以任何关于如何最好地实现这一点的指示都值得赞赏。 最佳答案 要获取用户创建的集合中的对象(我假设您使用的是 javascript 库
我有一个试图用于CD服务器的部署脚本,但是在编写bash脚本以完成一些所需的步骤(例如运行npm和迁移命令)时遇到了问题。 我将如何从该脚本进入容器bash,运行下面的命令,然后退出以完成对更改的提取
我想在使用 kubectl 时将参数传递给 Kubernetes 部署命令应用部署文件。 示例:在我的部署 .yaml 中,我有如下参数,我想在使用 kubectl apply - f .yaml 运
我是一名优秀的程序员,十分优秀!