Fork me on GitHub

Docker入门

Docker简介

Docker是一种虚拟容器技术,是伴随PaaS(平台即服务)产生的,常用的虚拟化容器技术有两种:全虚拟化和操作系统虚拟化(OS)。VMvare workstation是全虚拟化的实现,而Docker是基于操作系统虚拟化技术的一种。

Docker与VMvare对比,有显著的优势:

  • 启动速度快。Docker容器的启动操作在秒级就可以完成。
  • 系统消耗资源低。一台Linux机器可以运行上千个Docker容器。
  • 迁移扩展更便捷。Docker比VMvare占更少的磁盘空间,对安装好的Docker容器迁移更便捷,且兼容性好,支持物理机、云平台等几乎任意平台。

Docker核心概念

Docker包含四个基本概念:镜像(Image)、容器(Container)、仓库(Repository)、仓库注册中心(Registry)

Docker镜像是一个模板,可以用来创建Docker容器,容器是从镜像创建的运行实例,它们间的关系类似于Java中的类和对象,Docker通过容器运行应用。

Registry是存放镜像的地方,Repository是Registry中对镜像进行分类存放的地方。即一个Registry中会有多个Repository,而一个Repository中会存放多个不同tag的Image。

Registry分为公有和私有两种,Docker默认的Registry是Dokcer Hub,国内公开的Registry有USTC、网易云、AliCloud等,此外用户可搭建私有Registry。

Docker命令

Docker安装

Docker默认操作系统是Ubuntu,此处讲Centos上Docke的安装。

docker卸载:yum -y remove docker

docker安装:yum install -y docker

docker启动:systemctl start docker 或 systemctl start docker.service

docker重启:systemctl restart docker

Docker镜像

列出镜像:docker images

其中:Repository:镜像所在仓库;Tag:镜像版本;ImageID:镜像ID;Created:镜像创建时间;Size:镜像大小。

搜索镜像:docker search 镜像名称

拉取镜像:docker pull 镜像名称:tag 例子:docker pull centos:7

注意:默认拉取镜像是从dokcer hub拉取,速度慢,可改为从ustc拉取

在docker宿主机:vi /etc/docker/daemon.json

添加如下记录后重启docker

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

删除指定镜像:docker rmi repository:tag 或 docker rmi imageID

删除所有镜像:docker rmi $(docker images -q)

若镜像ImageID一致 ,镜像之间有关联,需按照一定顺序删除

导出镜像1:docker save repository:tag/imageID > /root/xx.tar.gz`

导入镜像1:docker load < /root/xx.tar.gz

导出镜像2:docker save repository:tag/imageID -o /root/xx.tar

导入镜像2:docker load -i /root/xx.tar

Docker容器

创建容器命令:docker run

参数:

  • -i 表示运行容器
  • -t 表示容器启动后可进入其命令行,即分配了伪终端
  • --name 容器创建名称
  • -v 表示宿主机目录与容器目录的映射
  • -d 会创建守护式进程在后台运行,这种方式创建的容器不会自动登录
  • -p 表示宿主机端口和容器内端口的映射,可用多个-p做映射

交互式运行容器:

docker run -i -t --name 容器名称 repository:tag /bin/bash

docker -it --name 容器名称 imageID /bin/bash

守护式进程方式运行容器:(推荐使用)

docker run -di --name 容器名称 repository:tag

docker run -di --name 容器名称 imageID

注意:通过run创建并进入容器后,可通过exit退出容器,此时容器停止。再次进入,需start启动容器,再进入容器。

启动容器:docker start 容器名称/容器ID

进入容器:

docker exec -it 容器名称/容器ID /bin/bash (推荐使用)

docker attach 容器名称/容器ID

attach进入容器,exit退出,容器停止运行;exec进入容器,exit退出,容器依旧运行。

查看正在运行容器:docker ps

查看历史运行过的容器:docker ps -a

查看醉经运行过的容器:docker ps -l

停止容器:docker stop 容器名称/容器ID

删除指定容器:docker rm 容器名称/容器ID

删除所有容器:docker rm 'docker ps -a -q'

复制文件:docker cp 源文件 目标文件

源文件和目标文件既可以为宿主机中的文件,也可为容器中的文件。若为容器中文件格式为:容器名称:路径

例:docker cp /root/test.war mycentos:/usr/local

posted @ 2019-10-16 22:58  紫焱luis  阅读(164)  评论(0编辑  收藏  举报