专栏首页IT综合技术分享docker安装篇,第二篇 在Ubuntu18.04上开启RESTful API接口,HTTP与HTTPS接口访问
原创

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

本教程参考以下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


第一章 基础配置设置

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

sudo mkdir -p /etc/systemd/system/docker.service.d

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

sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf

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

HTTP配置文件

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

HTTPS配置文件

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

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

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自创建证书并使用


第一步:创建私钥

$ 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:(确认设置的密码)

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

$ 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)。

$ 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证书进行签署公钥。

$ echo subjectAltName = DNS:zhangyc,IP:192.168.10.10,IP:127.0.0.1 >> extfile.cnf

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

$ echo extendedKeyUsage = serverAuth >> extfile.cnf

第六步:生成签名证书:

$ 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:(输入第一步时设置的密码)

未完待续

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

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

    本教程参考以下docker官方文档,如在使用本教程过程中存在问题,可翻阅原文官方文档: https://docs.docker.com/install/lin...

    cn華少
  • 在ubuntu16.10上开启docker 17.03.0-ce的http远程访问

    $ sudo dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock &

    cn華少
  • 基于docker可使用的api

    https://github.com/spotify/docker-client

    cn華少
  • 深度Deepin 15.11 安装docker-ce, docker-compose

    Deepin官方百科教程地址:https://wiki.deepin.org/wiki/Docker

    用户2235302
  • Centos7使用docker搭建Sentry

      Sentry 是一款基于 Django实现的错误日志收集和聚合的平台,它是 Python 实现的,但是其日志监控功能却不局限于python,对诸如 Node...

    用户3773636
  • Centos docker卸载

    问天丶天问
  • docker离线部署 - jumpserver

    2019年7月17日 ⋅ 浏览量: 4    ...

    以谁为师
  • Docker常用命令

    学习Docker有段时间了,所有的操作都是在命令行下,如果不是每天都在使用,很容易忘记命令。本文将以学习Docker的角度,从前到后,将一些常用的Docker命...

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

    本教程参考以下docker官方文档,如在使用本教程过程中存在问题,可翻阅原文官方文档: https://docs.docker.com/install/lin...

    cn華少
  • Docker Cheat Sheet

    “使用Docker,开发人员可以使用任何工具链以任何语言构建任何应用程序。”Dockerized“应用程序完全可移植,可以在任何地方运行 - 同事的OS X和W...

    iOSDevLog

扫码关注云+社区

领取腾讯云代金券