Docker下载与安装

下载安装包

国内网络连接docker镜像还是比较慢的,这里推荐直接下载docker镜像,Ubuntu镜像下载路径为:https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/ ,可以下载合适的版本,我下载的文件列表如下:

  • containerd.io_1.4.6-1_amd64.deb

  • docker-ce_20.10.73-0ubuntu-xenial_amd64.deb

  • docker-ce-cli_20.10.73-0ubuntu-xenial_amd64.deb

安装

dpkg -i [packagename]

注意:docker-ce_20.10.7~3-0~ubuntu-xenial_amd64.deb这个包需要最后安装

hello-world

# docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal. To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/ For more examples and ideas, visit:
https://docs.docker.com/get-started/

启动并加入开机启动

systemctl start docker && systemctl enable docker

验证安装

[root@172 software]# docker version
Client: Docker Engine - Community
Version: 20.10.7
API version: 1.41
Go version: go1.13.15
Git commit: f0df350
Built: Wed Jun 2 11:58:10 2021
OS/Arch: linux/amd64
Context: default
Experimental: true Server: Docker Engine - Community
Engine:
Version: 20.10.7
API version: 1.41 (minimum version 1.12)
Go version: go1.13.15
Git commit: b0f5bc3
Built: Wed Jun 2 11:56:35 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.6
GitCommit: d71fcd7d8303cbf684402823e425e9dd2e99285d
runc:
Version: 1.0.0-rc95
GitCommit: b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7
docker-init:
Version: 0.19.0
GitCommit: de40ad0

配置SSL证书

生成证书有效期10年的证书

在服务器中新建一个目录,并切换到该目录下

mkdir /etc/docker && cd /etc/docker

创建根证书RSA私钥

openssl genrsa -aes256 -out ca-key.pem 4096

备注:此处需要两次输入密码,请务必记住该密码,在后面步骤会用到

创建CA证书

openssl req -new -x509 -days 3650 -key ca-key.pem -sha256 -out ca.pem

备注:该步骤以上一步生成的密钥创建证书,也就是自签证书,也可从第三方CA机构签发

创建服务端私钥

openssl genrsa -out server-key.pem 4096

创建服务端签名请求证书文件

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

备注:其中的IP地址为自己服务器IP地址

创建extfile.cnf的配置文件

echo subjectAltName = IP:172.31.128.152,IP:0.0.0.0 >> extfile.cnf \
echo extendedKeyUsage = serverAuth >> extfile.cnf

备注:其中IP地址改为自己服务器IP地址

创建签名生效的服务端证书文件

openssl x509 -req -days 3650 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem \-CAcreateserial -out server-cert.pem -extfile extfile.cnf

创建客户端私钥

openssl genrsa -out key.pem 4096

创建客户端签名请求证书文件

openssl req -subj '/CN=client' -new -key key.pem -out client.csr

extfile.cnf文件中增加配置

echo extendedKeyUsage = clientAuth >> extfile.cnf

创建签名生效的客户端证书文件

openssl x509 -req -days 3650 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem \-CAcreateserial -out cert.pem -extfile extfile.cnf

删除无用文件

rm -v client.csr server.csr

为证书文件授权

chmod -v 0400 ca-key.pem key.pem server-key.pem
chmod -v 0444 ca.pem server-cert.pem cert.pem

查看证书有效期

openssl x509 -in ca.pem -noout -dates
notBefore=Jun 5 03:23:23 2021 GMT
notAfter=Jun 3 03:23:23 2031 GMT

配置Docker支持TLS连接

编辑docker.service配置文件

vim /lib/systemd/system/docker.service

找到ExecStart=开头的一行代码,将其替换为如下内容

ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 --tlsverify --tlscacert=/etc/docker/cert/ca.pem --tlscert=/etc/docker/cert/server-cert.pem --tlskey=/etc/docker/cert/server-key.pem --containerd=/run/containerd/containerd.sock

备注:此处设置docker远程端口为2375,可根据需要修改

刷新配置,重启Docker

systemctl daemon-reload && systemctl restart docker

重启后查看服务状态

systemctl status docker

ca.pem cert.pem key.pem 这三个是我们客户端调用所需的证书文件

参考链接

Docker启用TLS进行安全配置:https://www.cnblogs.com/xiaoqi/p/docker-tls.html

Ubuntu18.04下安装Docker并配置SSL证书加密远程连接的更多相关文章

  1. Ubuntu18.04 离线安装 docker

    Ubuntu18.04 离线安装 dockerhttps://blog.csdn.net/u012814856/article/details/804231851. 将下载下来的文件夹中的 4 个文件 ...

  2. Ubuntu18.04下安装搜狗输入法

    Ubuntu18.04下安装搜狗输入法 第一步:安装 fcitx输入框架 sudo apt-get install fcitx 第二步:在官网下载 Linux 版本搜狗输入法 https://piny ...

  3. docker学习笔记(一)—— ubuntu16.04下安装docker

    docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...

  4. Ubuntu18.04下安装MySQL

    Ubuntu上安装MySQL非常简单只需要几条命令就可以完成. 1. sudo apt-get install mysql-server 2. apt-get isntall mysql-client ...

  5. Ubuntu18.04下安装Sublime Text3并解决不能输入中文

    Ubuntu18.04下安装Sublime Text3并解决不能输入中文! 废话不多说,直接按顺序执行下面命令开始安装! wget -qO - https://download.sublimetext ...

  6. 在Ubuntu14.04下安装Docker CE(1) - repository篇

    从2017年3月开始,Docker开始分为社区版本和企业版,也就是Docker CE和Docker EE, 原来Ubuntu14.04下,通过sudo apt-get install docker.i ...

  7. Ubuntu18.04下安装Sublime Text3!

    这几天安装了Ubuntu18.04,然后在里面安装Sublime Text3,结果各种问题!各种BUG!试了网上各种办法!尼玛!都是坑爹的啊! 最后还是楼主自己解决了…… 废话不多说,直接按顺序执行下 ...

  8. ubuntu18.04下安装mysql后无法用mysqlworkbench访问

    问题描述:我在ubuntu18.04下执行以下命令安装mysql时遇到了mysqlworkbench无法连接root用户的问题.ubuntu18.04下默认安装mysql时是5.7版本的,但是5.7版 ...

  9. Ubuntu18.04下安装MySQL5.7(支持win10-wsl环境)

    注意: 本文操作环境为win10系统wsl下的Ubuntu18.04,对于原生的Ubuntu18.04同样适用.MySQL默认版本为5.7,其他版本不适用. 安装步骤 1.更新源: sudo apt ...

随机推荐

  1. 【2020BUAA软件工程】个人博客作业

    个人作业博客 项目 内容 北航2020软工 班级博客 作业要求 具体要求 我的课程目标 学习软件工程,掌握团队合作,锻炼自我 作业在哪个方面帮助我实现目标 通读<构建之法>,尝试理解软件工 ...

  2. 【近取 Key】Alpha - 项目展示

    项目与团队亮点 一.团队成员与分工简介 成员组成与分工 本团队由 6 名成员组成,其中有 3 名 PM,2 名后端开发人员与 4 名前端开发人员,由于组内成员数量有限,因此所有 PM 均需同时兼领开发 ...

  3. NABCD-name not found

    项目 内容 课程 2020春季计算机学院软件工程(罗杰 任健) 作业要求 团队项目选择 项目名称 FOTT 项目内容 在OCR-Form-Tools开源项目的基础上,扩展功能,支持演示更多的API,例 ...

  4. 高阶函数 / abs方法

    abs()求绝对值,填括号里面

  5. [Java] SpringBoot

    背景 简化SSM(H)中大量的配置工作,开发人员只关心提供业务功能 可以看成简化了的.按照约定开发的SSM(H) 概念 JavaBean:满足规范的Java类(属性private+默认构造方法+get ...

  6. 强哥CSS学习笔记

    html嵌套css样式:1.外部(推荐)2.内部3.内联(不推荐) css优先级1.内联2.id选择器3.class选择器4.标签 css长度单位:1.px2.em (14px) css选择器:常用选 ...

  7. SPI总线 通俗易懂讲解——(转载)

    SPI总线 MOTOROLA公司的SPI总线的基本信号线为3根传输线,即SI.SO.SCK.传输的速率由时钟信号SCK决定,SI为数据输入.SO为数据输出.采用SPI总线的系统如图8-27所示,它包含 ...

  8. Modbus RTU CRC校验码计算方法

    在CRC计算时只用8个数据位,起始位及停止位,如有奇偶校验位也包括奇偶校验位,都不参与CRC计算. CRC计算方法是: 1.  加载一值为0XFFFF的16位寄存器,此寄存器为CRC寄存器. 2.   ...

  9. HTML 标签隐藏占用空间与不占用空间(Day_29)

    老是有些忘记或者搞混淆,今天写篇博客. 隐藏占用空间: 将标签的属性设置为: visibility:hidden; <input id="modifId" type=&quo ...

  10. Jenkins 基础篇-凭证配置

    我们在正式开始使用 Jenkins 之前还要先配置一些凭证,这些凭证的作用主要是用于认证,例如我们要从代码仓库拉取代码,就需要用到代码仓库的账号密码或者密钥:我们要登录远程服务器也需要用户名密码或者密 ...