【docker】docker

一、docker概念

  • 1.docker是一个开源的应用容器引擎
  • 2.诞生于2013年初,基于GO语言实现,dotCloud公司出品(后改名为Docker Inc)
  • 3.docker可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,发布到任何流行的linux机器上
  • 4.容器是完全使用沙箱机制,相互隔离
  • 5.容器性能开销极低
  • 6.docker从17.3版本之后分为CE(Community Edition:社区版)和EE(Enterprise Editon:企业版)
  • 7.docker可以运行在mac、window、centos、ubuntu等操作系统

二、docker安装(centos7)

  • 1.yum包更新到最新
yum update
  • 2.安装需要的软件包yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
  • 3.设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 4.安装docker
yum install -y docker-ce
  • 5.查看docker版本,验证是否成功
docker -v

三、docker架构

3.1 镜像image
  • 1.docker镜像,相当于是一个root文件系统
  • 2.比如官方镜像ubuntu:16.04就包含了完整的一套ubuntu16.04最小
3.2 容器container
  • 1.镜像和容器的关系,就像面向对象程序设计中的类和对象,镜像是静态的定义,容器是镜像运行时的实体
  • 2.容器可以被创建、启动、停止、删除、暂停等

四、配置docker镜像加速器

  • 1.默认情况下,从docker hub(https://hub.docker.com)下载docker镜像,速度很慢,一般会配置镜像加速器

  • 2.USTC:中科大镜像加速器(https://docker.mirrors.ustc.edu.cn)

  • 3.阿里云:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,将修改代码拷贝到linux中执行即可
    在这里插入图片描述

  • 4.网易云

  • 5.腾讯云

五、docker命令

5.1 docker服务命令
  • 1.启动docker服务
sudo systemctl start docker
  • 2.停止docker服务
sudo systemctl stop docker
  • 3.重启docker服务
sudo systemctl restart docker
  • 4.查看docker服务状态
systemctl status docker
  • 5.设置开机启动docker服务
systemctl enable docker
5.2 docker镜像命令
  • 1.查看镜像
docker images

//REPOSITORY:仓库,镜像的名称
//TAG:版本,latest最新版本
//IMAGE ID:镜像id
//CREATED:创建时间
//SIZE:大小
  • 2.搜索镜像
// 搜索redis镜像
docker search redis
  • 3.拉取镜像
// 拉取redis镜像
docker pull redis 默认下载最新版本的redis镜像
docker pull redis:5.0 下载5.0版本的redis
  • 4.删除镜像
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
redis        latest    7614ae9453d1   19 months ago   113MB

docker rmi  7614ae9453d1   // 按镜像id删除
docker rmi  redis:5.0   // 按版本号删除
  • 5.查看所有镜像的id
docker images -q

在这里插入图片描述

  • 6.删除所有镜像
docker rmi `docker images -q`
5.3 docker容器命令
  • 1.查看容器
// 查看正在运行的容器
docker ps

// 查看所有容器
docker ps -a

  • 2.创建容器
docker run 参数

-i:保持容器运行。通常与-t同时使用。加入t这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
-t::为容器重新分配一个伪输入终端,通常与-i同时使用。
-d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭
-it创建的容器一般称为交互式容器
-id创建的容器一般称为守护式容器
--name:为创建的容器命名
  • 3.进入容器
// 进入容器名为mysqlserve容器
docker exec -it mysqlserve /bin/bash
// 退出容器
exit;
  • 4.启动容器
// 启动指定容器名的容器
docker start mysqlserve
  • 5.停止容器
// 停止指定容器名的容器
docker stop mysqlserve
  • 6.删除容器
// 删除指定名字的容器
docker rm mysqlserve
// 删除指定id的容器
docker rm 43a987902e8f
// 删除所有容器
docker rm `docker ps -aq`

// 正在运行的容器无法删除,需要停止容器才能删除, -f 强制删除
docker rm mysqlserve -f

在这里插入图片描述

  • 7.查看容器信息
docker inspect mysqlserve
  • 8.查看容器id
docker ps -aq

六、docker容器的数据卷

6.1 容器卷概念及作用
  • 1. 数据卷:是宿主机中的一个目录或文件
  • 2.当容器目录和数据卷目录绑定后,对方的修改会立即同步
  • 3.一个数据卷可以被多个容器同时挂载
  • 4.一个容器可以被挂载多个数据卷
6.2 配置数据卷
  • 1.创建启动容器时,使用-v参数来设置数据卷
  • 2.docker run … -v 宿主机目录(文件): 容器内目录(文件)…
  • 3.目录必须是绝对路径
  • 4.如果目录不存在,会自动创建
  • 5.可以挂载多个数据卷
  • 6.挂载的数据会持久化,即使容器销毁,挂载的目录或文件还会存在
6.3 挂载示例
docker run -it --name=容器名 -v ~/data1:/root/data1 -v /root/data2:/root/data2 centos:7
6.4 数据卷容器
  • 1.多容器进行数据交换
  • 2.多个容器挂载同一个数据卷
6.5 配置数据卷容器
  • 1.创建启动c3数据卷容器,使用-v参数 设置数据卷
docker run -it --name=c3 -v /volume centos:7 /bin/bash
  • 2.创建启动c1和c2容器,使用–volumes-from参数设置数据卷
docker run -it --name=c1 --volumns-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volumns-from c3 centos:7 /bin/bash

七、docker容器虚拟化与传统虚拟机

  • 1.容器是将软件打包成标准化单元,用于开发、交付与部署
  • 2.容器镜像是轻量的、可执行的独立软件包,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置
  • 3.容器化软件在任何环境中都能够始终如一地运行
  • 4.容器赋予了软件独立性,使其免受外在环境差异的影响,从而有助于减少团队间在相同基础设施上运行不同软件时的冲突
  • 5.相同点:容器和虚拟机具有相似的资源隔离和分配优势
  • 6.不同点:容器虚拟化的是操作系统,虚拟机虚拟化的是硬件;传统虚拟机可以运行不同的操作系统,容器只能运行同一类型操作系统
特性 容器 虚拟机
启动 秒级 分钟级
硬盘使用 一般为MB 一般为GB
性能 接近原生 弱于原生
系统支持量 单机支持上千个容器 一般几十个

猜你喜欢

转载自blog.csdn.net/qq_32088869/article/details/131749670