一、Docker概述

容器技术和虚拟机技术的不同

1.传统虚拟机,虚拟出一套硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件;

2.容器内的应用直接运行在宿主机的内核,容器没有自己的内核,也没有虚拟硬件,所以轻便;

3.容器之间相互隔离,每个容器内都有一个自己的文件系统,互不影响。

镜像(images)

相当于是一个模板,通过镜像可以创建多个容器

容器(container)

通过镜像来创建,通过容器技术,独立运行一个或者一组应用

可以理解为一个简易的linux系统

仓库(repository)

仓库是存放镜像的地方,仓库分为私有和公有。

环境查看

查看操作系统版本:uname -r

查看系统信息:cat /etc/os-release

安装Docker

#1.卸载旧的版本
 sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
#2.需要的安装包
yum install -y yum-utils
#3.设置镜像仓库
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新yum软件包索引
yum makecache fast
#4.安装docker相关内容(注:-ce社区版)
yum install docker-ce docker-ce-cli containerd.io

启动Docker

#启动docker
systemctl start docker

#查看是否启动成功
docker version
#运行hello world
docker run hello-world

#查看hello-world镜像
docker images

卸载Docker

#卸载docker
yum remove docker -ce docker-ce-cli containerd.io
#删除资源
rm -rf /var/lib/docker  (注:docker的默认工作路径)   

Docker的底层原理

docker是一个client-server结构的系统,docker的守护进程运行在主机上,通过socket从客户端访问;docker-server接受到docker-client指令,就会执行这个命令。

Docker为什么比VM快?

1.docker有着比虚拟机更少的抽象层;

2.docker利用的是宿主机的内核,vm需要的是guest OS;

所以说,新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导性的操作。虚拟机是加载guest OS,是分钟级别的,而docker利用宿主机的操作系统,省略了这个复杂的过程,是秒级别的。

二、Docker命令

帮助命令

docker version #显示docker的版本信息
docker info #查看docker系统信息,包括镜像和容器的数量
docker 命令 --help #帮助文档
官网帮助文档:https://docs.docker.com/engine/reference

镜像命令

docker images #查看本地主机上所有的镜像
[root@192 /]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    feb5d9fea6a5   11 days ago   13.3kB

#注释
REPOSITORY 镜像的仓库源
TAG   镜像标签
IMAGE ID    镜像的ID
CREATED        镜像的创建时间
SIZE         镜像的大小
#可选项
-a #列出所有
-q #只显示镜像的id

docker search mysql        #搜索命令
docker search mysql --filter=STARS=3000     #搜索过滤,搜索镜像STARS大于3000的

docker pull下载镜像

docker pull 镜像名:tag

[root@192 /]# docker pull mysql
Using default tag: latest        #默认tag是最新版本
latest: Pulling from library/mysql
07aded7c29c6: Pull complete     #分层下载
f68b8cbd22de: Pull complete 

Digest: sha256:4fcf5c80db19675a5c067e8b0e78a778ae2c6577213d #签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest    #真实镜像地址    
 #等价于docker pull docker.io/library/mysql:latest 

docker rmi 删除镜像

docker rmi -f 镜像ID #删除指定镜像
docker rmi -f $(docker images -aq)    #删除所有镜像
docker rmi -f 镜像ID1 镜像ID2 镜像ID3  #删除多个镜像 

未完待续........

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐