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. ES6对象的新增方法的使用

    Object.assign Object Object.assign(target, ...sources) 将所有可枚举属性的值从一个或多个源对象复制到目标对象 参数: target 目标对象 so ...

  2. [bug] IDEA中解决程序包javax.servlet不存在

    参考 https://blog.csdn.net/qq_41283865/article/details/81865806

  3. [bug] Linux下执行.sh命令出现-bash: ./bin/start.sh: /bin/bash^M: bad interpreter: No such file or directory

    参考 https://www.cnblogs.com/aeolian/p/10614284.html

  4. [Python] tkinter 之 Listbox & Combobox

    示例: 1 #用户界面 2 import os 3 os.chdir('F:\\spyder_workspace\\ColCal') 4 import Main 5 from tkinter impo ...

  5. 使用 IPMI 远程为服务器安装操作系统教程

    使用 IPMI 远程为服务器安装操作系统教程 shida_csdn 2019-01-09 11:30:10 9588 收藏 16展开一.什么是 IPMI? IPMI 是智能平台管理接口(Intelli ...

  6. 【山外笔记-工具框架】SVN版本控制系统

    [山外笔记-框架工具]SVN版本控制系统 学习资料: 1.本文打印版下载地址:[山外笔记-框架工具笔记]SVN版本控制工具-打印版.pdf 2.SVN和TortoiseSVN在线中文文档:http:/ ...

  7. NFS PersistentVolume(11)

    一.部署nfs服务端 1.需在 k8s-master 节点上搭建了一个 NFS 服务器,目录为 /nfsdata: yum install -y nfs-utils rpcbind vim /etc/ ...

  8. 019.Python函数sorted,filter和推导式

    一 sorted函数 sorted(iterable,reverse=False,key=函数) 功能:排序 参数: iterable:可迭代性数据(常用:容器类型数据,range对象,迭代器) re ...

  9. 关于STM32的可编程电压检测器的使用方法

    关于STM32的可编程电压检测器的使用方法 思维导图总览: 代码: 1 #include "sys.h" 2 #include "delay.h" 3 #inc ...

  10. exec函数族实例解析-(转自blankqdb)

    fork()函数通过系统调用创建一个与原来进程(父进程)几乎完全相同的进程(子进程是父进程的副本,它将获得父进程数据空间.堆.栈等资源的副本.注意,子进程持有的是上述存储空间的"副本&quo ...