002、Docker 基础【与云原生的故事】

举报
Yuchuan 发表于 2022/04/14 11:27:31 2022/04/14
【摘要】 docker 基本概念

Docker基本概念

一、解决的问题

1、统一标准

  • 应用构建
    • Java、C++、JavaScript
    • 打成软件包
    • .exe
    • docker build .... 镜像
  • 应用分享
    • 所有软件的镜像放到一个指定地方 docker hub
    • 安卓,应用市场
  • 应用运行
    • 统一标准的 镜像
    • docker run

容器化

2、资源隔离

  • cpu、memory资源隔离与限制
  • 访问设备隔离与限制
  • 网络隔离与限制
  • 用户、用户组隔离限制

二、架构

虚拟化技术:
1、基础镜像GB级别
2、创建使用稍微复杂
3、隔离性强
4、启动速度慢
5、移植与分享不方便

容器化技术:
1、基础镜像MB级别
2、创建简单
3、隔离性强
4、启动速度秒级
5、移植与分享方便

  • Docker_Host:
    • 安装Docker的主机
  • Docker Daemon:
    • 运行在Docker主机上的Docker后台进程
  • Client:
    • 操作Docker主机的客户端(命令行、UI等)
  • Registry:
    • 镜像仓库
    • Docker Hub
  • Images:
    • 镜像,带环境打包好的程序,可以直接启动运行
  • Containers:
    • 容器,由镜像启动起来正在运行中的程序

交互逻辑

装好Docker,然后去 软件市场 寻找镜像,下载并运行,查看容器状态日志等排错

3、安装

1、centos下安装docker

其他系统参照如下文档

1、移除以前docker相关包

[root@master0-server ~]# yum remove docker \
> docker-client \
> docket-client-latest \
> docker-common \
> docker-latest \
> docker-latest-logrotate \
> docker-logrotate \
> docker-engine
No match for argument: docker
No match for argument: docker-client
No match for argument: docket-client-latest
No match for argument: docker-common
No match for argument: docker-latest
No match for argument: docker-latest-logrotate
No match for argument: docker-logrotate
No match for argument: docker-engine
No packages marked for removal.
Dependencies resolved.
Nothing to do.
Complete!
[root@master0-server ~]#

2、配置yum源

sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@master1-server ~]# yum-config-manager \
> --add-repo \
> http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Invalid configuration value: failovermethod=priority in /etc/yum.repos.d/CentOS-Epel.repo; Configuration: OptionBinding with id "failovermethod" does not exist
Adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@master1-server ~]#

解决办法

 /etc/yum.repos.d/CentOS-Epel.repo 文件中 failovermethod=priority 注释掉。

[root@master1-server ~]# yum-config-manager \
> --add-repo \
> http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@master1-server ~]#

3、安装docker

sudo yum install -y docker-ce docker-ce-cli containerd.io


#以下是在安装k8s的时候使用
yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7  containerd.io-1.4.6

4、启动

systemctl enable docker --now

5、配置加速

这里额外添加了docker的生产环境核心配置cgroup

镜像加速器
操作说明
1. 安装/升级容器引擎客户端推荐安装1.11.2以上版本的容器引擎客户端
2. 加速器地址https://061566c33ds53460026b60fedsdss3c00517392e80.mirror.swr.myhuaweicloud.com 
3. 配置镜像加速器针对容器引擎客户端版本大于 1.11.2 的用户以root用户登录容器引擎所在的虚拟机修改“/etc/docker/daemon.json”文件(如果没有,可以手动创建),在该文件内添加如下内容:vi /etc/docker/daemon.json
{
	"registry-mirrors": [
		"https://061566c3360026b6dsa12210fe3c00517392e80.mirror.swr.myhuaweicloud.com"
	]
}
按“Esc”,输入:wq保存并退出。
4. 重启容器引擎配置完成后,执行systemctl restart docker重启容器引擎。 如果重启失败,则检查操作系统其他位置(如:/etc/sysconfig/docker、/etc/default/docker)是否配置了registry-mirrors参数,删除此参数并重启容器引擎即可。
5. 确认配置结果执行docker info,当Registry Mirrors字段的地址为加速器的地址时,说明加速器已经配置成功。
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://061566c33600fdsfdsa423226b60fe3c00517392e80.mirror.swr.myhuaweicloud.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
[root@master1-server docker]# ll
total 8
-rw-r--r-- 1 root root 253 Apr 14 11:21 daemon.json
-rw------- 1 root root 244 Apr 14 11:02 key.json
[root@master1-server docker]#
[root@master1-server docker]#
[root@master1-server docker]# systemctl daemon-reload
[root@master1-server docker]# systemctl restart docker
[root@master1-server docker]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2022-04-14 11:25:59 CST; 7s ago
     Docs: https://docs.docker.com
 Main PID: 299884 (dockerd)
    Tasks: 8
   Memory: 40.9M
   CGroup: /system.slice/docker.service
           └─299884 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Apr 14 11:25:58 master1-server dockerd[299884]: time="2022-04-14T11:25:58.998757809+08:00" level=info msg="ClientConn switching balancer to \"pick_fi>
Apr 14 11:25:59 master1-server dockerd[299884]: time="2022-04-14T11:25:59.026125032+08:00" level=warning msg="Your kernel does not support cgroup blk>
Apr 14 11:25:59 master1-server dockerd[299884]: time="2022-04-14T11:25:59.026141924+08:00" level=warning msg="Your kernel does not support cgroup blk>
Apr 14 11:25:59 master1-server dockerd[299884]: time="2022-04-14T11:25:59.026233315+08:00" level=info msg="Loading containers: start."
Apr 14 11:25:59 master1-server dockerd[299884]: time="2022-04-14T11:25:59.131937408+08:00" level=info msg="Default bridge (docker0) is assigned with >
Apr 14 11:25:59 master1-server dockerd[299884]: time="2022-04-14T11:25:59.174945485+08:00" level=info msg="Loading containers: done."
Apr 14 11:25:59 master1-server dockerd[299884]: time="2022-04-14T11:25:59.191440293+08:00" level=info msg="Docker daemon" commit=b0f5bc3 graphdriver(>
Apr 14 11:25:59 master1-server dockerd[299884]: time="2022-04-14T11:25:59.191484627+08:00" level=info msg="Daemon has completed initialization"
Apr 14 11:25:59 master1-server systemd[1]: Started Docker Application Container Engine.
Apr 14 11:25:59 master1-server dockerd[299884]: time="2022-04-14T11:25:59.218406423+08:00" level=info msg="API listen on /var/run/docker.sock"
lines 1-20/20 (END)

【与云原生的故事】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/345260

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。