Docker基本管理

黄沙百战穿金甲,不破楼兰终不还。这篇文章主要讲述Docker基本管理相关的知识,希望能为你提供帮助。
Docker基本管理 一、Docker的概念 1、云计算三层架构

服务 说明 应用
IAAS 基础设施及服务 硬件(服务器、网络设置、防火墙等)虚拟化 网络虚拟化(大二层) 例:openstack
PAAS 平台及服务 环境 例:数据库、 docker 、kubernetes
SAAS 应用及服务 应用 例:应用商店的应用
而Docker就是PAAS中的技术。
2、Docker是什么Docker是一种轻量级的“虚拟机”,是一个开源的应用容器引擎。容器是完全使用沙箱机制,相互之间不会有任何接口
  • 轻量级表示它体积小,灵活
  • 而说它是虚拟机,又不是真正的虚拟机,因为它里面没有系统
  • 开源表示它是免费的
3、Docker和虚拟机的区别
对比参数 虚拟机 容器
启动时间 慢 (分钟级别) 快速(毫秒级别)
占用空间 大(整个系统的大小,几G) 小(内核大小,几M)
系统隔离 逻辑隔离 依赖于内核(内核共享)
安全性 (因为隔离性) 低(使用原系统内核)
4、使用场景
  • 对应用的打包与部署自动化
  • 创建轻量、私密的PAAS环境
  • 实现自动化测试和持续的集成/部署
  • 部署与扩展webapp、数据库和后台服务
5、Docker的核心概念(重点)
  • 镜像(镜像的压缩包)
  • 容器(实例,通过镜像创建)
  • 仓库(存放镜像的地方)
    • 公有仓库:Docker官方仓库
    • 私有仓库:个人化、私有化的仓库
6、CentOS中的安装方法方法一:
使用CURL获得Docker的安装脚本(get-docker.sh)进行安装
方法二:
使用yum仓库安装
我们使用第二种方法安装
二、Docker相关命令 1、安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2#yum-utils提供了yum-config-manager #device mapper存储驱动程序需要device-mapper-persistent-data和lvm2 #Device Mapper 是Linux2.6内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。

Docker基本管理

文章图片

2、设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

Docker基本管理

文章图片

Docker基本管理

文章图片

3、安装Docker-CE
yum install -y docker-ce systemctl stop firewalld.service systemctl disable firewalld.service setenforce 0 vim /etc/selinux/config SELINUX=disabled systemctl start docker.service systemctl enable docker.service

Docker基本管理

文章图片

Docker基本管理

文章图片

Docker基本管理

文章图片

配置阿里云镜像加速,不然下载速度很慢
  • 加速地址从自己的阿里云上获取
  • 阿里云官网:https://account.aliyun.com/
  • 获取方式:登录阿里云–> 控制台–> 在上面搜索容器镜像服务–> 左下角的镜像加速器
    • 在此页面中显示阿里云的镜像加速地址和配置方法
      Docker基本管理

      文章图片

      Docker基本管理

      文章图片

      Docker基本管理

      文章图片
systemctl daemon-reload systemctl restart docker

Docker基本管理

文章图片

网络优化
vim /etc/sysctl.conf net.ipv4.ip_forward=1 sysctl -p service network restart systemctl restart docker

Docker基本管理

文章图片

Docker基本管理

文章图片

4、基础命令 查看docker版本信息
docker version

Docker基本管理

文章图片

(1)镜像的操作
查找指定镜像
docker search 服务名 例如: docker search nginx

Docker基本管理

文章图片

下载镜像
docker pull 服务名 例如: docker pull nginx

Docker基本管理

文章图片

查看镜像信息
docker images docker inspect 镜像的ID 例如 docker images docker inspect 295c7be07902

Docker基本管理

文章图片

添加新标签(打标签)
docker tag 仓库名:原镜像名 仓库名:新镜像名 例如: docker tag nginx:latest nginx:test docker images docker images | grep nginx

Docker基本管理

文章图片

删除镜像
  • 指定镜像ID删除的时候,要求不能有该镜像不能有标签
docker rmi 镜像的ID docker rmi 仓库名:镜像名 例如: docker rmi f6d0b4767a6c docker images docker rmi nginx:test docker images

【Docker基本管理】
Docker基本管理

文章图片

将镜像存储到本机上,命名为nginx_latest
docker save -o 存放镜像的位置 仓库名:镜像名 例如: docker save -o /opt/nginx_latest nginx:latest

Docker基本管理

文章图片

载入镜像
方法一: docker load < 本地导出的镜像名 方法二: docker --input 本地导出的镜像名例如: docker load < nginx_latest docker load --input nginx_latest

方法一:
Docker基本管理

文章图片

方法二
Docker基本管理

文章图片

上传镜像
  • 将本地的镜像上传到公有的镜像仓库,要先登陆到镜像仓库
  • 上传镜像前要修改标签,标签前面要加上Docker官网的账号名
    • 标签格式: Docker官网的账号名/仓库名:镜像名
  • 不过一般不会上传到公有仓库中,公司内部都使用私有仓库
  • 私有云到后面再说
docker push [OPTIONS] NAME[:TAG]例如:按照下面的流程就可以上传到公有云,有兴趣的可以上传 #改标签 docker tag 仓库名:镜像名 用户名/仓库名:镜像名 #登录 docker login Username:#用户名 Password:#密码#上传 docker push 用户名/仓库名:镜像名

Docker基本管理

文章图片

(2)容器的操作
查看容器运行状态
  • 容器的STATUS状态
    • up是正在运行的
    • Exited (0)是正常停止的容器
    • Exited (非0)异常停止的容器
docker ps#查看运行中的容器 docker ps -a#加-a 列出所有的容器,包括未运行的容器

Docker基本管理

文章图片

创建容器
docker create [选项] 镜像运行的程序 -i:让容器的标准输入保持打开 -t:让Docker分配一个伪终端例; docker create -it nginx:latest /bin/bash

Docker基本管理

文章图片

启动、停止、重启容器
docker start 容器ID:启动一个或多个已经被停止的容器 docker stop 容器ID:停止一个运行中的容器 docker restart 容器ID:重启容器 例: docker stop c08ffd34e3f1 docker ps -a

Docker基本管理

文章图片

运行容器
  • run和start的作用有些类似,准确来说run相当于create+start
  • 一般第一次可以使用run,后面维护还是使用start/stop/restart
docker run [选项] 镜像 [命令] [变量] -d: 后台运行容器,并返回容器ID; -i: 以交互模式运行容器,通常与 -t 同时使用 -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用 -c 命令表示后面的参数将会作为字符串读入作为执行的命令 -v: 绑定一个卷 -P: 随机端口映射,容器内部端口随机映射到主机的端口 -p: 指定端口映射,格式为:主机(宿主)端口:容器端口 --name="名称": 为容器指定一个名称 --link name:alias 添加链接到另一个容器,格式“--link容器名:别名” 例如: docker run nginx docker run -d nginx docker run -d nginx /bin/bash -c "ls"

Docker基本管理

文章图片

Docker基本管理

文章图片

Docker基本管理

文章图片

进入、退出容器
  • 进入的容器状态一定要是运行状态
docker exec [选项] 容器 命令 例: docker exec -it 0d89bd6232f3 /bin/bash docker exec -it 6445720c61a5 /bin/bash exit//退出容器

Docker基本管理

文章图片

容器导出、导入
#容器导出 docker export 容器ID > 备份文件名#容器导入(会生成镜像,而不会创建容器) cat 备份文件名 | docker import - 仓库名:镜像名例如: docker export 6445720c61a5 > nginx_up docker export 0d89bd6232f3 > nginx_exitedcat nginx_up | docker import - nginx:web

Docker基本管理

文章图片

删除容器
docker rm 容器ID 例如: docker rm 4d8dcf51a4ef //批量删除容器 docker ps -a | awk print "docker rm "$1 | bash

Docker基本管理

文章图片

Docker基本管理

文章图片

Docker基本管理

文章图片

总结1、镜像
查找镜像(search)—上传(pull)、下载(push)—打标签(tag)—删除(rm)—导出(save)、导入(load)
2、容器
查看(ps)—创建(create)—启动(start)、停止(stop)、重启(restart)—运行(run)—进入(exec)、退出(exit)—导入(import)、导出(export)—删除(rmi)
3、仓库
下载registry镜像—> 运行容器、暴露端口5000—> 修改daemon.json文件—> 重启docker
挂载容器—> 打标签—> 上传—> 查询—> 下载

    推荐阅读