Docker学习
1.Docker简介
1.1 什么是虚拟化
在计算机中,虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,
予以抽象、转换后呈现出来,打破实体结构间的不可分割的障碍,使用户可以比原来的组态更好的方式来应用这些资源。这些资源的
新虚拟部分是不受现有资源的架设方式、地域或物理组态所限制的。一般所指的虚拟化资源包括计算能力和资料存储。
虚拟化的技术有很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化、桌面虚拟化、服务虚拟化和虚拟机等。
1.2 什么是Docker
Docker是一个开源项目,诞生于2013年初,基于Go语言实现的。后来加入Linux基金会,遵从Apache2.0协议,项目代码在Github
上进行维护。
Docker的基础是Linux,与虚拟机不同的是,Docker只能虚拟出与宿主机相同的容器,但是占用的空间非常小,运行效率非常高。
1.3 Docker的组件
- 服务器与客户端
Docker是一个客户端与服务器(C/S)架构程序。客户端向服务器或守护进程发出请求,服务器或守护进程将完成工作并返回结果。 - 镜像与容器
镜像是构建Docker的基石。用户基于镜像来运行自己的容器。镜像也是Docker生命周期中的“构建部分”。镜像是基于联合文件系统
的一种层式结构,有一系列指令一步一步构建出来。
容器是基于镜像启动起来的,容器中可以运行一个或多个进程。镜像是Docker生命周期中的构建或是打包阶段,而容器则是启动或
执行阶段。容器时基于镜像启动,一旦容器启动完成后,就可以在容器中安装自己需要的软件和服务。 - Registry(注册中心)
Docker用Registry来保存用户构建的镜像。分为公有和私有两部分,Docker公司运营公共的Registry叫做Docker Hub。用户可以
在Docker Hub注册账号,分享并保存自己的镜像。(Docker Hub 下在巨慢,可以构建自己的Registry)。
2.Docker安装与启动
2.1 安装Docker
- ubuntu 安装
- apt-get 更新
sudo apt-get update
- 安装Docker
sudo apt-get install docker.io
- 查看版本
docker -v
- apt-get 更新
- centos 安装
- yum源更新
sudo yum update
- 安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是device-mapper驱动依赖的
sudo yum install -y yum-utils device-mapper-presistent-data lvm2
- 设置yum源为阿里源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装Docker
sudo yum install docker-ce
- 查看版本
docker -v
- yum源更新
2.2 设置ustc的镜像
ustc是老牌的Linux镜像服务提供者了,还在遥远的Ubuntu5.04版本的时候就在用。ustc的docker镜像加速器速度很快。
ustc docker mirror 的优势之一就是不需要注册,是真正的提供服务。
https://lug.ustc.edu.cn/wiki/mirrors/help/docker
编辑该文件:
vim /etc/docker/daemon.json
在文件中添加如下内容:
1 | { |
2.3 Docker的启动与停止
systemctl命令是系统服务管理器指令
- 启动docker
systemctl start docker
- 停止docker
systemctl stop docker
- 重启docker
systemctl restart docker
- 查看docker状态
systemctl status docker
- 开机启动
systemctl enable docker
- 查看docker概要信息
docker info
- 查看docker帮助文档
docker --help
3. 常用命令
3.1 镜像相关命令
- 查看镜像
docker images
字段 | 含义 |
---|---|
REPOSITORY | 镜像名称 |
TAG | 镜像标签 |
IMAGE ID | 镜像ID |
CREATED | 镜像的创建日期 |
SIZE | 镜像大小 |
- 搜索镜像(需要从网络中查找需要的镜像)
docker search 镜像名称
字段 | 含义 |
---|---|
NAME | 仓库名称 |
DESCRIPTION | 镜像描述 |
STARS | 用户评价,反应一个镜像的受欢迎程度 |
OFFICIAL | 是否官方 |
AUTOMATED | 自动创建,表示该镜像有Docker Hub自动构建流程创建的 |
拉取镜像(从中央仓库下载到本地)
docker pull 镜像名称
例如,下载centos7镜像
docker pull centos:7
删除镜像
docker rmi 镜像ID
删除所有镜像
docker rmi `docker images -q`
注意`,不是’
3.2 容器相关命令
- 查看容器
- 查看正在运行的容器
docker ps
- 查看所有容器
docker ps -s
- 查看最后一次运行的容器
docker ps -l
- 查看停止的容器
docker ps -f status=exited
- 查看正在运行的容器
- 创建与启动容器
- 创建容器命令与参数说明
docker run [参数]
- 创建容器命令与参数说明
参数 | 含义 |
---|---|
-i | 表示运行容器 |
-t | 表示容器启动后会进入其命令行,加入这两个参数后,容器创建就能登录进去,即分配一个伪终端 |
–name | 为创建的容器命名 |
-v | 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机的目录),可以使用多个-v做多个目录或文件映射。注意,最好做目录映射,在宿主机上做修改,然后共享到容器上 |
-d | 表示创建一个守护式容器在后台运行(这样创建的容器不会自动登录容器,如果只加-i,-t两个参数,创建后就会自动进入容器 |
-p | 表示端口映射,前者是宿主机端口,后者是容器内的映射端口,可以使用多个-p做多个端口映射 |