2.安装Docker

环境准备 Linux要求内核3.0以上

#查看linux环境
[root@izbp1a6mu5e8nzvi0x15cwz ~]# uname -r
3.10.0-1062.9.1.el7.x86_64
[root@izbp1a6mu5e8nzvi0x15cwz ~]# uname -a
Linux izbp1a6mu5e8nzvi0x15cwz 3.10.0-1062.9.1.el7.x86_64 #1 SMP Fri Dec 6 15:49:49 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux


1、uname -r : 显示操作系统的发行版号
2、uname -a :显示系统名、节点名称、操作系统的发行版号、内核版本等等。

系统名:
Linux

节点名称:
izbp1a6mu5e8nzvi0x15cwz

操作系统的发行版号:
3.10.0-1062.9.1.el7.x86_64

内核版本:
 #1 SMP Fri Dec 6 15:49:49 UTC 2019

硬件平台:
x86_64

机器硬件名:
x86_64

系统处理器的体系结构:
x86_64

操作系统:
GNU/Linux


#查看系统版本
[root@izbp1a6mu5e8nzvi0x15cwz ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

  • 帮助文档:https://docs.docker.com/engine/install/
#1.卸载旧版本
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 \
    https://download.docker.com/linux/centos/docker-ce.repo #默认是从国外的,不推荐
    
#推荐使用阿里云的,非常快
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
#更新yum软件包索引
yum makecache fast

#4.安装docker相关的 docker-ce 社区版 而ee是企业版
yum install docker-ce docker-ce-cli containerd.io


#5. 启动docker
[root@izbp1a6mu5e8nzvi0x15cwz ~]# systemctl start docker

#6. 使用docker version查看是否按照成功
[root@izbp1a6mu5e8nzvi0x15cwz ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea
 Built:             Wed Nov 13 07:25:41 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.5
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.12
  Git commit:       633a0ea
  Built:            Wed Nov 13 07:24:18 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.10
  GitCommit:        b34a5c8af56e510852c35414db4c1f4fa6172339
 runc:
  Version:          1.0.0-rc8+dev
  GitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683


2.安装Docker_第1张图片

#7. 测试
[root@izbp1a6mu5e8nzvi0x15cwz ~]# docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/


看到 Hello from Docker!就表示成功了!

2.安装Docker_第2张图片

#8.查看一下下载的镜像      
[root@izbp1a6mu5e8nzvi0x15cwz ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
demo                latest              c11a680def5a        4 months ago        663MB
nginx               latest              c7460dfcab50        4 months ago        126MB
hello-world         latest              bf756fb1ae65        5 months ago        13.3kB
mysql               5.7                 db39680b63ac        5 months ago        437MB
java                8                   d23bdf5b1b1b        3 years ago         643MB

了解:卸载docker

#1. 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
#2. 删除资源
rm -rf /var/lib/docker

# /var/lib/docker docker的默认

配置镜像加速器

2.安装Docker_第3张图片

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://2iz9ke8j.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

回顾HelloWorld流程

2.安装Docker_第4张图片

docker run 流程图

2.安装Docker_第5张图片

底层原理

Docker是怎么工作的?

  • Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访问!
  • Docker-Server接收到Docker-Client的指令,就会执行这个命令!

2.安装Docker_第6张图片

为什么Docker比Vm快

  1. docker有着比虚拟机更少的抽象层。由于docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。

  2. docker利用的是宿主机的内核,而不需要Guest OS。

  • GuestOS: VM(虚拟机)里的的系统(OS);
  • HostOS:物理机里的系统(OS);
    2.安装Docker_第7张图片
    因此,当新建一个 容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。仍而避免引导、加载操作系统内核返个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载GuestOS,返个新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了这个复杂的过程,因此新建一个docker容器只需要几秒钟。

你可能感兴趣的:(#,Docker学习)