前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker安装篇,第二篇 在Ubuntu18.04上开启RESTful API接口,HTTP与HTTPS接口访问

docker安装篇,第二篇 在Ubuntu18.04上开启RESTful API接口,HTTP与HTTPS接口访问

原创
作者头像
cn華少
修改2018-09-01 00:11:42
1.5K0
修改2018-09-01 00:11:42
举报
文章被收录于专栏:IT综合技术分享

本教程参考以下docker官方文档,如在使用本教程过程中存在问题,可翻阅原文官方文档:

https://docs.docker.com/install/linux/linux-postinstall/#next-steps

https://docs.docker.com/engine/api/v1.37/#

https://docs.docker.com/engine/security/https/

本教程安装环境为:

系统:Ubuntu18.04 x86-64

docker版本:

Version: 18.06.0-ce

API version: 1.38

Go version: go1.10.3


第一章 基础配置设置

第一步:创建配置文件存储目录

代码语言:txt
复制
sudo mkdir -p /etc/systemd/system/docker.service.d

第二步:创建配置文件,并增加配置信息

代码语言:txt
复制
sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf

HTTP与HTTPS最大的不同在于HTTPS需要进行证书加载,其体现在于以下配置文件中:

HTTP配置文件

代码语言:txt
复制
[Service]
ExecStart=
#HTTP使用以下命令
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

HTTPS配置文件

代码语言:txt
复制
sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf

[Service]
ExecStart=
#HTTP使用以下命令
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

第三步:刷新配置使其生效

代码语言:txt
复制
sudo systemctl daemon-reload
sudo systemctl restart docker.service
sudo netstat -lntp | grep dockerd

注:如果这里启动了防火墙,还需进行设置防火墙放开2375端口的访问


第四步:测试客户机或管理系统进行测试接口是否正常

打开浏览器访问:http://宿主机IP:2375/info 确认是否和docker部署机docker info返回值一致

测试其他接口是否正常:http://宿主机IP:2375/networks 对应命令参考:docker network ls

备注:更多命令请参考官方文档https://docs.docker.com/engine/api/v1.37/


第二章 HTTPS自创建证书并使用


第一步:创建私钥

代码语言:txt
复制
$ openssl genrsa -aes256 -out ca-key.pem 4096


Generating RSA private key, 4096 bit long modulus
....................................................................++
........++
e is 65537 (0x10001)
Enter pass phrase for ca-key.pem:(输入自己要设置的密码,并记住该密码,下面要用)
Verifying - Enter pass phrase for ca-key.pem:(确认设置的密码)

第二步:基于上一步的私钥进行创建公钥

代码语言:txt
复制
$ openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem


Enter pass phrase for ca-key.pem:(输入上一步设置的密码)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN(输入国家的名字)
State or Province Name (full name) [Some-State]:shandong(输入省份的名字)
Locality Name (eg, city) []:jinan(输入城市的名字)
Organization Name (eg, company) [Internet Widgits Pty Ltd]:cnHuaShao(输入机构、公司的名字,不输入直接回车)
Organizational Unit Name (eg, section) []:cnHuaShao(输入单位、部门名字,不输入直接回车)
Common Name (e.g. server FQDN or YOUR name) []:zhangyc(输入主机名,这里输入的是$HOST,需要保证其HOSTS文件中已经配置了该名称)
Email Address []:lz2392504@gmail.com(输入邮箱地址)

第三步:创建服务器密钥和证书签名请求(CSR)。

代码语言:txt
复制
$ openssl genrsa -out server-key.pem 4096

Generating RSA private key, 4096 bit long modulus
.....................................................................++
.................................................................................................++
e is 65537 (0x10001)


$ openssl req -subj "/CN=zhangyc" -sha256 -new -key server-key.pem -out server.csr

第四步:基于上面创建的CA证书进行签署公钥。

代码语言:txt
复制
$ echo subjectAltName = DNS:zhangyc,IP:192.168.10.10,IP:127.0.0.1 >> extfile.cnf

第五步:将Docker的使用属性设置为仅用于服务器身份验证:

代码语言:txt
复制
$ echo extendedKeyUsage = serverAuth >> extfile.cnf

第六步:生成签名证书:

代码语言:txt
复制
$ openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem \
  -CAcreateserial -out server-cert.pem -extfile extfile.cnf

Signature ok
subject=/CN=zhangyc(输入host名)
Getting CA Private Key
Enter pass phrase for ca-key.pem:(输入第一步时设置的密码)

未完待续

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本教程参考以下docker官方文档,如在使用本教程过程中存在问题,可翻阅原文官方文档:
    • 本教程安装环境为:
      • 系统:Ubuntu18.04 x86-64
      • docker版本:
  • 第一章 基础配置设置
    • 第一步:创建配置文件存储目录
      • 第二步:创建配置文件,并增加配置信息
        • HTTP与HTTPS最大的不同在于HTTPS需要进行证书加载,其体现在于以下配置文件中:
      • 第三步:刷新配置使其生效
        • 注:如果这里启动了防火墙,还需进行设置防火墙放开2375端口的访问
        • 第四步:测试客户机或管理系统进行测试接口是否正常
    • 第二章 HTTPS自创建证书并使用
      • 第一步:创建私钥
        • 第二步:基于上一步的私钥进行创建公钥
          • 第三步:创建服务器密钥和证书签名请求(CSR)。
            • 第四步:基于上面创建的CA证书进行签署公钥。
              • 第五步:将Docker的使用属性设置为仅用于服务器身份验证:
                • 第六步:生成签名证书:
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档