Docker基础(从一脸懵到入门)

1.Docker简介

一.什么是虚拟化技术

      虚拟化技术是一种计算机资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来。虚拟化技术打破了计算机实体结构间的,不可切割的障碍。使用户可以比原本的组态更好的方式,来应用这些资源。

    虚拟化技术主要作用:

    高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件

    软件跨环境迁移问题(代码的水土不服)

二.什么是Docker

     官网地址:https://www.Docker.com

     Docker通俗的讲是服务器中高性能的虚拟机,可以将一台物理机虚拟N多台虚拟机的机器,互相之间隔离,互不影响。

      第一句,是“Build, Ship and Run”。也就是,“搭建、发送、运行”,三板斧。

      第二句口号就是:“Build once,Run anywhere(搭建一次,到处能用)”。

     Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

 

三.Docker与虚拟机的比较

    Docker 和传统虚拟化方式的不同之处,可见Docker是在操作系统层面上实现虚拟

化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。

四.Docker基本概念

图示帮助理解:

 

Docker 的几个核心概念如下,也可结合图示理解

宿主机:安装Docker守护进程的Linux服务器,称之为宿主机;

镜像(Image):Docker 镜像,就相当于是一个 root 文件系统。除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数。

容器(Container):镜像运行之后的实体,镜像和容器的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

仓库(Repository):仓库可看成一个镜像控制中心,用来保存镜像。

容器和镜像的区别?

要点:容器 = 镜像 + 可读层。并且容器的定义并没有提及是否要运行容器

总结:可以理解镜像是文件,容器是进程。容器是基于镜像创建的,即容器中的进程依赖于镜像中的文件(镜像就是容器的系统文件),这里的文件包括进程运行所需要的可执行文件,依赖软件,库文件,配置文件等等。也可以将容器看做是镜像运行的一个实例,或者是文件与进程的关系。

  每运行一个容器,都会在镜像上加一个可写层,但这一层并不会改变镜像本身,这也就是为什么,有时候你如果同一个镜像,启动多个容器,里面的内容不会变,但是如果将可写层持久化,就要通过commit命令来把可写层写到磁盘,即生成新的镜像。

 

2.Docker安装与启动常用命令

 (1)查看电脑上已经已经安装Docker

    yum list installed | grep docker

(2)安装docker

    yum -y install docker

(3)安装后查看docker版本

    docker -v

 

(4)systemctl命令是系统服务管理器指令

启动docker:systemctl start docker

停止docker:systemctl stop docker

重启docker:systemctl restart docker

查看docker状态:docker info

开机启动:systemctl enable docker

查看docker帮助文档:docker --help

 

3.Docker镜像常用命令

一.配置镜像加速器

  默认情况,将从docker hub(https://hub.docker.com/)下载docker镜像太慢,一般都会配置镜像加速器;

  方案一:中科大

中国科学技术大学(ustc)是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在用。ustc的docker镜像加速器速度很快。ustc docker mirror的优势之一就是不需要注册,是真正的公共服务。

编辑该文件:   

vi  /etc/docker/daemon.json

在该文件中输入如下内容

{

"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]

}

方案二:阿里云

如果中科大镜像加载速度很慢,建议配置阿里云镜像加速,这个镜像仓库如果不好使,可以自己从阿里云上申请!

{

 "registry-mirrors": ["https://3ad96kxd.mirror.aliyuncs.com"]

}

必须要注册,每个人分配一个免费的docker镜像加速地址,速度极快

配置完成记得刷新配置

 

sudo systemctl daemon-reload

sudo systemctl restart docker

二.镜像常用命令

查看镜像 docker images

搜索镜像 docker search imageName

拉取镜像 docker pull imageName:version

删除镜像 docker rmi imageId rmi-->remove Image

4.Docker容器常用命令

查看容器

     查看正在运行的容器:docker ps

     查看所有容器(查看正在运行的和已经停止运行的) docker ps -a    或者docker ps -all

     查看最后一次运行的容器: docker ps -l

     查看停止的容器:docker ps -f status=exited

创建容器:交互式、守护式

      交互式: docker run -it --name=容器名称 镜像名称:标签 /bin/bash

      守护式: docker run -di --name=容器名称 镜像名称(或镜像ID):标签 /bin/bash

登录容器/进入容器的目录:

      docker exec -it 容器名称 (或者容器ID) /bin/bash

启动容器: docker start 容器名称(或者容器ID)

停止容器: docker stop 容器名称(或者容器ID)

删除容器docker rm 容器名称(或者容器ID)

5.Docker数据卷

一.概述

  数据卷是宿主机中的一个目录或文件,当容器目录和数据卷目录绑定后,对方的修改会立即同步。一个数据卷可以被多个容器同时挂载,一个容器也可以被挂载多个数据卷。简单来说数据卷本质其实是共享文件夹,是宿主机与容器间数据共享的桥梁。

二. 数据卷作用

  容器数据持久化。

  外部机器和容器间接通信。

  容器之间数据交换。

三.数据卷配置方式

(1)1个容器挂载1个数据卷

注意事项:

1. 目录必须是绝对路径

2. 如果宿主机目录不存在,会自动创建

3. 可以挂载多个数据卷

 案例:

 

#拉取centos镜像

docker pull centos:7

#安装启动容器并挂载

docker run -di --name=c1 -v /root/host_data1:/root/c1_data centos:7 /bin/bash

(2)查看容器已挂载的数据卷

docker inspect 容器名称(容器ID)

 

(3).1个容器挂载多个数据卷

可以通过以下命令,挂载多个数据卷

docker run -di --name=c1 -v /root/host_data1:/root/c1_data1 -v

/root/host_data2:/root/c1_data2 centos:7 /bin/bash

(4).多个容器挂载1个数据卷

多个容器挂载1个数据卷,实现数据共享

docker run -di --name=c2  -v /root/host_data_common:/root/c2_data centos:7

docker run -di --name=c3  -v /root/host_data_common:/root/c3_data centos:7

多个容器挂载1个容器(这个容器挂载1个数据卷)

##创建启动c3数据卷容器,使用 –v 参数 设置数据卷

docker run -di --name=c3 -v /root/host_data_common:/root/c3_data centos:7

/bin/bash

##创建启动 c1 c2 容器,使用 –-volumes-from 参数 设置数据卷

docker run -di --name=c1 --volumes-from c3 centos:7 /bin/bash

docker run -di --name=c2 --volumes-from c3 centos:7 /bin/bash

写在最后:接下来几个系列将会讲解

Docker中安装Mysql

ElasticSearch,Kibana环境搭建

Kafka 环境搭建

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值