当前位置: 首页 > Linux

Linux运维-Docker安装

时间:2023-04-06 07:21:09 Linux

docker学习笔记LXC操作系统层虚拟化LXC,它的名字来源于Linux软件容器(LinuxContainers)的缩写,一种操作系统级虚拟化(Operatingsystem–levelvirtualization)技术,用于一个用户空间接口来Linux内核容器功能。它将应用软件系统打包成一个软件容器(Container),容器中包含应用软件本身的代码,以及所需的操作系统核心和库。通过统一的命名空间和共享API分配不同软件容器的可用硬件资源,为应用创建独立的沙箱运行环境,让Linux用户可以轻松创建和管理系统或应用容器。在Linux内核中,提供了cgroups功能来实现资源分割。它还提供了命名空间划分的功能,使应用程序看到的操作系统环境被划分为独立的划分,包括进程树、网络、用户标识和挂载的文件系统。但是cgroups不一定需要启动任何虚拟机。LXC利用cgroups和命名空间的功能,为应用软件提供独立的操作系统环境。LXC不需要Hypervisor软件层。软件容器(Container)本身极其轻量,提高了创建虚拟机的速度。软件Docker用于管理LXC环境。Docker是使用谷歌推出的Go语言开发和实现的。基于Linux内核的cgroup、namespace等技术,以及AUFS等UnionFS,对进程进行封装和隔离,属于操作系统层面的虚拟化技术。由于隔离进程独立于宿主机和其他隔离进程,所以又称为容器。最初的实现是基于LXC。从0.7版本开始去掉了LXC,改用自研的libcontainer。从1.11版本开始,进一步进化为使用runC和containerd。Docker的生命周期Docker中有三个基本概念:镜像、容器和仓库。了解了这三个概念后,就可以大致了解Docker的生命周期了。Docker架构:Client:docker是一个c/s架构的程序,无论是客户端还是服务端,都是由docker程序提供的。在docker子程序中,dockerdaemon是一个可以监听socket的守护进程。此套接字仅供本机上的客户端使用。Docker_HOST:运行容器的宿主机,即拥有Docker镜像和Docker容器的宿主机。Registry:镜像仓库,存放镜像的仓库。Docker默认镜像仓库为https://hub.docker.com/Docker安装系统环境DockerCE支持64位CentOS7,要求内核版本不低于3.10。CentOS7满足最低内核要求,但由于内核版本低,部分功能无法使用,部分功能可能不稳定。[root@game-test1~]#cat/etc/redhat-releaseCentOSLinuxrelease7.4.1708(Core)[root@game-test1~]#cat/proc/versionLinuxversion3.10.0-693.11.6.el7.x86_64(builder@kbuilder.dev.centos.org)(gccversion4.8.520150623(RedHat4.8.5-16)(GCC))#1SMPThuJan401:06:37UTC2018卸载旧版本旧版本Docker被称为docker或docker-engine。使用以下命令卸载旧版本:yumremovedockerdocker-commondocker-selinuxdocker-engine是使用yum安装的。由于网络原因,建议使用国内源下载。执行以下命令添加yum源:yum-config-manager--add-repohttps://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo如果提示有是没有yum-config-manager命令,需要安装yum这个命令所在的包。yuminstall-yyum-utils安装最新版本的DockerCE:yum-config-manager--enabledocker-ce-edgeupdatesoftwaresourcecache,andinstalldocker-ceyummakecachefastyuminstall-ydocker-cestartDockerCEsystemctlenabledocker#设置开机自启动systemctlstartdocker创建Docker用户组默认情况下,docker命令会使用Unixsocket与Docker引擎进行通信。只有root用户和docker组的用户才能访问Docker引擎的Unixsocket。出于安全原因,在Linux系统上不直接使用root用户。因此,将需要使用docker的用户加入docker用户组。创建用户组groupadddocker创建docker用户,加入docker组useradd-gdockerdocker-s/sbin/nologin测试docker是否安装正确。如果出现以上输出信息,则docker安装成功,docker安装完成。[root@jackyun~]#dockerrunhello-worldUnabletofindimage'hello-world:latest'locallylatest:Pullingfromlibrary/hello-world9db2ca6ccae0:Pullcomplete...(部分省略)