docker学习笔记(二)

news2024/12/26 12:45:06

目录

启动Docker

​编辑

 建立 Docker 用户

​编辑

测试 Docker 是否正常工作

卸载Docker

Docker镜像加速器配置

配置镜像

检查加速器是否生效

如何在Linux中的.json文件下保存并退出

如果我是使用vi操作进来的,我该如何保存并退出呢?

如何在Linux系统下删除deamon.json文件

检查加速器是否生效

 云服务商

Docker远程访问

开启访问

Docker远程访问是为了干什么?

 安全认证

配置Docker支持TLS

 客户端访问


启动Docker

# 启动Docker命令
systemctl start docker
# 查看启动结果
systemctl status docker

 建立 Docker 用户

# 创建一个docker用户
useradd mydocker
# 将用户加入到docker组
usermod -aG docker mydocker
# 给用户设置密码
passwd mydocker
# 查看是否正确修改组成功
id mydocker
# 看到类似的输出 uid=1001(mydocker) gid=1001(mydocker) 组
=1001(mydocker),993(docker)

测试 Docker 是否正常工作

# 切换到mydocker用户
su mydocker
# 执行测试命令
docker run hello-world

 若能正常输出以上信息,则说明安装成功并且说明docker能够正常运行。

默认配置下,如果在 CentOS 使用 Docker CE 看到下面的这些警告信息:

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

请添加内核配置参数以启用这些功能,需要使用root用户

# 切换回管理员
sudo -s
# 启动功能命令
tee -a /etc/sysctl.conf < -EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# 重新加载配置
sysctl -p

卸载Docker

如果你想要卸载Docker引擎,可以执行下面的命令

yum remove docker-ce \
docker-ce-cli \
containerd.io \
docker-compose-plugin
主机上的镜像、容器、卷或自定义配置文件不会自动删除。要删除所有镜像、容器和卷,执行下面的命令
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

您必须手动删除任何已编辑的配置文件。

Docker镜像加速器配置

国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供 了国内加速器服务,例如:
网易云加速器 https: hub - mirror.c.163.com
百度云加速器 https: mirror.baidubce.com
DAOCloud https: w .daocloud.io/mirror
阿里云加速器 ( 需登录账号获取 )

配置镜像

/etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件

#如果文件不存在 新建文件
touch daemon.json
# 编辑文件 vi daemon.json 添加{}下面的内容
{
"registry-mirrors": [
"https: hub-mirror.c.163.com",
"https: mirror.baidubce.com",
"http: f1361db2.m.daocloud.io",
"https: registry.docker-cn.com"
]
}

下面错了,一定要带大括号!一定要带大括号!一定要带大括号!

注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。
重启服务
# 重新加载配置
systemctl daemon-reload
# 重启docker服务
systemctl restart docker
# 查看docker状态
systemctl status docker

检查加速器是否生效

执行 docker info ,如果从结果中看到了如下内容,说明配置成功。

如何在Linux中的.json文件下保存并退出

在Linux中保存并退出.json文件的步骤如下:

  1. 打开终端并进入包含.json文件的目录。

  2. 使用文本编辑器打开.json文件。例如,使用nano编辑器:

nano file.json
  1. 进行必要的更改。

  2. 按下 Ctrl + O 以保存文件。

  3. 按下 Ctrl + X 退出编辑器。

现在,您的更改已经保存在.json文件中。

如果我是使用vi操作进来的,我该如何保存并退出呢?

如果您正在使用vi编辑器进行编辑,可以按下Esc键退出编辑模式,并按下:wq命令保存并退出文件。具体步骤如下:

  1. 按下i键进入编辑模式,开始编辑文件。
  2. 编辑完毕后,按下Esc键退出编辑模式。
  3. 输入:wq命令保存并退出文件。注意,冒号是必须的。
  4. 按下回车键,文件将被保存并退出编辑器。

如果您只是想退出编辑器而不保存更改,可以按下Esc键进入命令模式,并按下:q!命令强制退出不保存更改。

如何在Linux系统下删除deamon.json文件

您可以使用 rm命令删除 deamon.json文件。打开终端并输入以下命令:
sudo rm /etc/docker/daemon.json

请注意,使用sudo命令需要管理员权限,以便在系统中执行此操作。

# 重新加载配置
systemctl daemon-reload
# 重启docker服务
systemctl restart docker
# 查看docker状态
systemctl status docker


检查加速器是否生效

执行 docker info ,如果从结果中看到了如下内容,说明配置成功。

 云服务商

某些云服务商提供了仅供内部访问的镜像服务,当您的 Docker 运行在云平台时可以选择它们。
Azure 中国镜像 https: dockerhub.azk8s.cn
腾讯云 https: mirror.ccs.tencentyun.com

Docker远程访问

开启访问

参考链接: https://docs.docker.com/config/daemon/remote-access/
使用下面命令编辑 docker 服务启动文件
systemctl edit docker.service
添加或修改以下行,替换为您自己的值, ip 地址修改成功你自己服务器的 ip 地址(我当前监听的是我自己的虚拟机IP)
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd: -H tcp: 192.168.220.128:2375 containerd=/run/containerd/containerd.sock
然后保存文件,执行下面命令重新加载 systemctl 配置。

Docker远程访问是为了干什么?

Docker远程访问是为了让用户可以从本地或其他机器远程连接到运行Docker的服务器,以便管理和操作Docker容器和镜像。通过远程访问,用户可以通过网络访问Docker API,从而执行各种操作,如启动、停止、重启容器,上传或下载镜像等。这样可以方便地在多个机器之间共享容器和镜像,同时也提高了Docker的灵活性和可移植性。

然后保存文件,执行下面命令重新加载 systemctl 配置。
systemctl daemon-reload
重启 Docker 容器
systemctl restart docker
通过查看 netstat 的输出以确认 dockerd 正在侦听配置的端口,以检查更改是否已生效。
netstat -lntp | grep dockerd

 开放防火墙端口

# 开放端口
firewall-cmd --add-port=2375/tcp --permanent
# 重新加载防火墙
firewall-cmd --reload

 安全认证

由于开放了端口没有做任何安全保护,会引起安全漏洞,被人入侵、挖矿、 CPU 飙升这些情况都有发生。
为解决这个问题:我们只要使用安全传输层协议(TLS)进行传输并使用 CA 认证即可。
参考链接: https://docs.docker.com/engine/security/protect-access/
制作证书和秘钥

mkdir /home/docker-ca && cd /home/docker-ca
创建 CA 证书私钥,期间需要输入两次用户名和密码,生成文件为 ca - key.pem
openssl genrsa -aes256 -out ca-key.pem 4096

密码根据自己情况输入就行,比如我输入都是 root
根据私钥创建 CA 证书,期间需要输入上一步设置的私钥密码,生成文件为 ca.pem
openssl req -new -x509 -days 365 -key ca-key.pem \
-sha256 -subj "/CN=*" -out ca.pem
创建服务端私钥,生成文件为 server - key.pem
openssl genrsa -out server-key.pem 4096

 创建服务端证书签名请求文件,用于CA证书给服务端证书签名,生成文件server.csr

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

 创建CA证书签名好的服务端证书,期间需要输入CA证书私钥密码,生成文件为server-cert.pem

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

 创建客户端私钥,生成文件为key.pem

openssl genrsa -out key.pem 4096

 创建客户端证书签名请求文件,用于CA证书给客户证书签名,生成文件client.csr

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

 为了让秘钥适合客户端认证,创建一个扩展配置文件extfile-client.cnf

echo extendedKeyUsage = clientAuth > extfile-client.cnf

 创建CA证书签名好的客户端证书,期间需要输入CA证书私钥密码,生成文件为cert.pem

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

 删除创建过程中多余的文件

rm -rf ca.srl server.csr client.csr extfile-client.cnf
最终生成文件如下,有了它们我们就可以进行基于 TLS 的安全访问了

ca.pem CA 证书
ca-key.pem CA 证书私钥
server-cert.pem 服务端证书
server-key.pem 服务端证书私钥
cert.pem 客户端证书
key.pem 客户端证书私钥

配置Docker支持TLS

编辑 docker 服务启动文件
systemctl edit docker.service
在原来的基础上往后添加启动参数
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://192.168.83.130:2375 --
containerd=/run/containerd/containerd.sock --tlsverify --tlscacert=/home/docker-
ca/ca.pem --tlscert=/home/docker-ca/server-cert.pem --tlskey=/home/docker-
ca/server-key.pem
然后保存文件,执行下面命令重新加载 systemctl 配置。
systemctl daemon-reload
重启 Docker 容器
systemctl restart docker

 客户端访问

下载证书到本地磁盘,主要下载下面三个文件
ca.pem CA 证书
cert.pem 客户端证书
key.pem 客户端证书私钥
比如我下载到我的本地电脑的 D:\Workspace\docker - ca 这个位置。

记住这个位置,后面打包部署的时候需要指定改目录的,具体使用我们在打包部署的时候会用到。

scp root@192.168.83.130:/home/docker-ca/ca.pem root@192.168.83.130:/home/docker-ca/cert.pem root@192.168.83.130:/home/docker-ca/key.pem D:\Workspace\docker-ca

哎呦,我滴个乖乖,真是快没有把我累死

就离谱,之前删除vmware的时候没有删干净,可倒好,我打开控制面板,网络连接,虚拟机的适配器都没有了,太离谱!

之后下那个ccleaner,找来找去,看了一篇大佬的博客才把问题解决

解决本机网络适配器中没有虚拟网卡VMnet1、VMnet8_如何在物理机中看到虚拟网络1和虚拟网络8_BK_小小关的博客-CSDN博客

终于是把xftp给链接上了


 

可算是把这三位爷都弄进去了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/514367.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3 步集成 Terraform + 极狐GitLab CI ,实现基础设施自动化管理

本文来自&#xff1a;极狐GitLab 开发者社区 作者&#xff1a;KaliArch 利用极狐GitLab CI 实现基础设施编排自动化后&#xff0c;用户就可以使用极狐GitLab 进行基础设施管理&#xff1a;提交基础设施变更后&#xff0c;会触发 MR 进行极狐GitLab CI 流水线执行&#xff0c;从…

电视盒子什么牌子好?数码小编分享2023热销电视盒子排行榜

整理私信的时候有朋友希望我能分享电视盒子排行榜&#xff0c;对不了解电视盒子什么牌子好的朋友们来说&#xff0c;选购电视盒子时很容易踩雷&#xff0c;因此我根据各大电商平台的销量数据整理了最新热销电视盒子排行榜&#xff0c;对电视盒子感兴趣的朋友们可以了解一下。 ●…

时序预测 | Python实现AR、ARMA、ARIMA时间序列预测

时序预测 | MATLAB实现VAR和GARCH时间序列预测 目录 时序预测 | MATLAB实现VAR和GARCH时间序列预测预测效果基本介绍模型原理程序设计参考资料预测效果 基本介绍 Python实现AR、ARMA、ARIMA时间序列预测 模型原理 AR、ARMA、ARIMA都是常用的时间序列预测方法,它们的主要区别在…

功能优化升级,添加更丰富的刷题练习设置|会员权益、答题后显示数据、切题按钮、进入小组必设昵称、小组统计筛选条件、考试排行榜、优化缓存机制

土著刷题微信小程序v1.14&#xff0c;主要是针对用户在使用期间提的一些优化建议&#xff0c;经过评估后进行优化升级的一次版本&#xff0c;下面将逐条介绍一下这一版的优化点。 01 会员权益页面 通过对用户提出的问题进行归纳总结&#xff0c;部分用户在购买VIP时&#xff0c…

【git】修改作者和提交者信息

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 修改git作者和提交者信息 1. 正文 1.1 前提 1.1.1 作者和提交者 作者就是我们git log看到的信息&#xff0c;如下&#xff1a; 其修改方式参考&…

linux应用编程

项目内容 开发板内部使用c语言调用硬件驱动实现各种测试功能&#xff0c;保存测试结果。 外部程序通过socket接口使用tcp协议与开发板通信进行信息传输&#xff0c; 最后使用python GUI构造一个界面按照测试顺序逐步显示出各个模块的测试结果 测试包括&#xff1a;485-232uart、…

(十四)地理数据库创建——进一步定义数据库②

&#xff08;十四&#xff09;地理数据库创建——进一步定义数据库② 目录&#xff08;接上篇&#xff09; &#xff08;十四&#xff09;地理数据库创建——进一步定义数据库② 4.创建注释类4.1建立注释类4.2产生连接要素注释 5.创建几何网络5.1几何网络概述5.2建立几何网络 6…

亿级大表毫秒关联,荔枝微课基于Apache Doris 统一实时数仓建设实践

本文导读&#xff1a; Apache Doris 助力荔枝微课构建了规范的、计算统一的实时数仓平台&#xff0c;目前 Apache Doris 已经支撑了荔枝微课内部 90% 以上的业务场景&#xff0c;整体可达到毫秒级的查询响应&#xff0c;数据时效性完成 T1 到分钟级的提升&#xff0c;开发效率更…

设备树的相关概念

.dts相当于.c DTS的源码文件 DTC工具相当于gcc编译器 将dts 编译成 dtb dtb相当于bin文件 或可执行文件 编译dtb 文件的方法 在linux内核文件夹中 make imx6ull-alientek-emmc.dtb在执行上述代码之前 要把 imx6ull-alientek-emmc.dtb删除 否则会提示已经存在 dts的结构 层层…

【Python文本处理】基于GPX文件的心率、速度、时间等参数更改

【Python文本处理】基于GPX文件的心率、速度、时间等参数更改 GPX文件本身其实就是坐标、海拔、时间、心率等综合性的xml文件 如图&#xff1a; 海拔&#xff1a;ele 时间&#xff1a;time 心率&#xff1a;heartrate 在不改变坐标和距离的情况下 缩短时间即可提高速度&#…

使用rsync和inotify实时备份CentOS服务器数据(详解)

简介 在日常运维中&#xff0c;确保服务器上的数据安全是至关重要的。数据丢失或损坏可能会导致灾难性后果&#xff0c;因此定期备份数据是一个明智的做法。本文LZ将向您展示如何使用 rsync 和 inotify-tools 工具在 CentOS 系统上设置实时备份&#xff0c;以确保您的数据始终…

Google I/O:谷歌AR看似不紧不慢,实则暗藏玄机

在今天举行的Google I/O大会上&#xff0c;尽管AI是全场最大的关注点&#xff0c;也还是有一系列AR相关技术和应用更新&#xff0c;比如&#xff1a;ARCore进行更新、推出新的Geospatial Creator等等。 ARCore面世已有5年时间&#xff0c;谷歌每年都在持续推动AR技术的发展。相…

Webpack 核心概念

文章目录 Webpack 核心概念概述安装webpack简单使用配置webpack.config.js配置package.json打包 核心概念modeentry 和 outputentry配置说明output配置说明配置单入口配置多入口 loader安装babel、babel-loader、core-js配置.babelrc配置webpack.config.js配置package.json编写…

【Linux】9. 习题①

2022-09-17_Linux环境与版本 1. 命令拓展(了解) linux查看cpu占用的命令是什么&#xff1f; A.top B.netstat C.free D.df 【答案解析】A 2022-09-24_Linux环境与版本 2. 命令拓展(了解) 以下哪个命令输出Linux内核的版本信息&#xff1a; A.uname -r B.vmstat C.sar D.sta…

wms仓库管理对企业的重要性

一、什么是wms仓库管理&#xff1f; WMS是仓库管理系统的缩写&#xff0c;它提供了一个可视化、智能化的平台&#xff0c;帮助公司进行仓库作业的管理和优化。WMS系统可以支持各种类型的仓库&#xff0c;包括零件、分销、批发、跨境电商等等&#xff0c;并提供多种功能&#xf…

如何查找下载外文文献,超强外文文献检索网站排名

英文文献哪里找&#xff0c;下面小编给大家推荐几个超强英文文献下载网站&#xff0c;推荐排名如下&#xff1a; 第4名&#xff1a;sci-hub 这个网站很多科研人都知道&#xff0c;优点是可以免费下载英文文献&#xff0c;缺点是网站不太稳定经常换域名&#xff0c;而且需要你明…

Zoho Desk获G2“2023年优秀软件”称号

备受瞩目的G2年度优秀软件评选结果终于在近期公布了。该奖项旨在表彰过去一年&#xff0c;在软件行业有突出亮点的厂商和产品。在今年的评选中&#xff0c;除了坚持过往满意度、市场占有率等评选维度&#xff0c;额外新增了英国、法国及德国三个地区的产品名单&#xff0c;还增…

5年测试被裁,去面试差点被问哭了······

我的个人背景非常简单&#xff0c;也可以说丝毫没有亮点。 学历普通&#xff0c;计算机专业二本毕业&#xff0c;毕业后出来就一直在一家小公司&#xff0c;岁月如梭细&#xff0c;算了下至今从事软件测试已经5年了&#xff0c;也点点点了五年&#xff0c;每天都是重复的工作&…

使用遗传算法解决一维下料问题(一、实现思路分析)

目录 一、前言 二、概念 三、术语定义 四、问题描述 五、实现思路 1、遗传算法 2、一维下料和遗传算法结合 六、下文预告 一、前言 三年前我就折腾过一维下料问题了&#xff0c;当时查遍百度、谷歌&#xff0c;阅尽硕博论文&#xff0c;最终采用自研算法解决了一维下料…

天津值得信赖的python培训哪家好

近些年越来越多人涌入了互联网大厂&#xff0c;许多人选择去培训机构系统的学习Python&#xff0c;那么好的Python培训机构的标准是什么样的呢&#xff1f;我们来一点点说。 一、为什么要学python python是目前大火的的编程语言之一。至于为什么火&#xff0c;不名思意&#…