k8s1

本文介绍了Docker的重要概念,包括镜像、容器和仓库,并讲述了如何在物理机上安装和使用Docker。讨论了容器的运行原理和数据卷的持久化。此外,还概述了K8s的组成,包括master和node节点的角色,以及如何配置和测试Kubernetes集群。
摘要由CSDN通过智能技术生成

流行的自动运维平台:

Ansible / Git / Jenkins / Docker

平台化、自动化、分类 (配置类、搭建类)、容器化

传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

Docker重要概念:

● 镜像(Image)
● 容器(Container)
● 仓库(Repository)

镜像采用了AUFS (联合文件系统),采用了分层结构,镜像是只读的,基础镜像一旦构建完成就不能再改了,但是可以在它上面封装一个层次,把改动的内容放到高层中。

容器:相当于是镜像的一次执行,容器也相当于是镜像可读写副本。

容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。

不要假定容器会永远运行,应该假定容器随时可能出现故障,出现故障后,也不会再去恢复它

数据卷的生存周期独立于容器,容器消亡,数据卷不会消亡。

一个 DockerRegistry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。

我们可以通过<仓库名>:<标签>的格式来指定具体是这个软件哪个版本的镜像。
如果不给出标签,将以latest作为默认标签。

在物理机上安装 docker 并启动

[root@666 k8s_pkgs]# yum -y install docker

[root@666 ~]# vim /etc/docker/daemon.json
{
    "registry-mirrors": ["https://8sj91tbl.mirror.aliyuncs.com"],
    "insecure-registries" : ["192.168.8.254:5000"]
}
[root@666 ~]# systemctl restart docker
[root@666 ~]# mkdir k8s
[root@666 ~]# cd k8s/

[root@666 k8s]# docker run busybox echo Hello World
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
53071b97a884: Pull complete 
Digest: sha256:4b6ad3a68d34da29bf7c8ccb5d355ba8b4babcad1f99798204e7abb43e54ee3d
Status: Downloaded newer image for busybox:latest
Hello World

容器、镜像的使用

[root@666 k8s]# docker run -d busybox echo 'Hello World'

如果本机没有 busybox:latest 将会到仓库中下载,然后启动容器
容器运行echo命令后,退出
因为容器只是宿主机上的一个进程,echo是个临时进程,运行后就退出,所以容器也就结束了。
因为容器只是个进程,不是一个完整的系统,所以如果希望它一直处于运行状态,就必须。
使容器内的进程在前台运行程序,不要让前台程序退出

[root@666 k8s]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              64f5d945efcc        3 weeks ago         1.199 MB
ubuntu              latest              452a96d81c30        13 months ago       79.62 MB
centos              latest              e934aafc2206        14 months ago       198.6 MB
registry            latest              d1fd7d86a825        16 months ago       33.26 MB
nginx               latest              a5311a310510        2 years ago         181.4 MB
redis               latest              1aa84b1b434e        2 years ago         182.8 MB
[root@666 k8s]# docker run -it centos bash
[root@242ccfad7ea7 /]# ps aux 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  11780  1868 ?        Ss   03:35   0:00 bash
root        15  0.0  0.0  47452  1656 ?        R+   03:36   0:00 ps aux

如果执行exit退出,容器又停止运行了,如果希望退回到宿主机的shell但不要停止容器,可以按Ctrl+p+q

[root@666 k8s]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
bf7570c87a0e        centos              "bash"              6 minutes ago       Up 6 minutes                            tender_swartz
[root@666 docker+kubernetes]# ls
docker                  k8s              keepalived健康检查.docx
Docker从入门到实践.pdf  k8s_pkgs.tar.gz  Kubernetes权威指南.pdf
images.tar.gz           k8s_setup.txt    mykube
[root@666 docker+kubernetes]# tar -xzf k8s_pkgs.tar.gz
[root@666 k8s_pkgs]# ls
atomic-registries-1.22.1-26.gitb507039.el7.centos.x86_64.rpm
conntrack-tools-1.4.4-4.el7.x86_64.rpm
containers-common-0.1.31-8.gitb0b750d.el7.centos.x86_64.rpm
container-selinux-2.74-1.el7.noarch.rpm
container-storage-setup-0.11.0-2.git5eaf76c.el7.noarch.rpm
docker-1.13.1-91.git07f3374.el7.centos.x86_64.rpm
docker-client-1.13.1-91.git07f3374.el7.centos.x86_64.rpm
docker-common-1.13.1-91.git07f3374.el7.centos.x86_64.rpm
etcd-3.3.11-2.el7.centos.x86_64.rpm
kubernetes-1.5.2-0.7.git269f928.el7.x86_64.rpm
kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64.rpm
kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64.rpm
kubernetes-node-1.5.2-0.7.git269f928.el7.x86_64.rpm
libnetfilter_cthelper-1.0.0-9.el7.x86_64.rpm
libnetfilter_cttimeout-1.0.0-6.el7.x86_64.rpm
libnetfilter_queue-1.0.2-2.el7_2.x86_64.rpm
libselinux-2.5-14.1.el7.x86_64.rpm
libselinux-python-2.5-14.1.el7.x86_64.rpm
libselinux-utils-2.5-14.1.el7.x86_64.rpm
libsemanage-2.5-14.el7.x86_64.rpm
libsemanage-python-2.5-14.el7.x86_64.rpm
libsepol-2.5-10.el7.x86_64.rpm
libyaml-0.1.4-11.el7_0.x86_64.rpm
oci-register-machine-0-6.git2b44233.el7.x86_64.rpm
oci-systemd-hook-0.1.18-3.git8787307.el7_6.x86_64.rpm
oci-umount-2.3.4-2.git87f9237.el7.x86_64.rpm
policycoreutils-2.5-29.el7_6.1.x86_64.rpm
policycoreutils-python-2.5-29.el7_6.1.x86_64.rpm
python-pytoml-0.1.14-1.git7dea353.el7.noarch.rpm
PyYAML-3.10-11.el7.x86_64.rpm
selinux-policy-3.13.1-229.el7_6.9.noarch.rpm
selinux-policy-targeted-3.13.1-229.el7_6.9.noarch.rpm
setools-libs-3.3.8-4.el7.x86_64.rpm
socat-1.7.3.2-2.el7.x86_64.rpm
subscription-manager-rhsm-certificates-1.21.10-3.el7.centos.x86_64.rpm

进入容器的方法:

(1)不启动新进程

[root@666 k8s]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
bf7570c87a0e        centos              "bash"              19 minutes ago      Up 19 minutes                           tender_swartz
[root@666 k8s]# docker attach bf
[root@bf7570c87a0e /]# ps a
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:00 bash
   14 ? 
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值