一、Docker的三大组件
要想使用Docker,就要先了解Docker的一些基本概念,首先要了解的是Docker的三大组件,分别是仓库、镜像、容器;
仓库(也有叫Registry(注册中心))
Docke中仓库的概念,有点类似与GitHub的仓库的概念,不过GitHub的仓库是存着大量的开源项目,而Docker的仓库存储的是用户构建的镜像,仓库又分为公有仓库和私有仓库;
1、官方公共仓库
Docker Hub(因为直接使用官方仓库下载镜像,速度有点让人堪忧,所以出现了大量的镜像仓库,大大提升了下载速度)
2、镜像仓库
- ustc的镜像(文章中使用的该镜像仓库)
- 网易163 docker镜像
- daocloud
- alicloud
镜像
如果说仓库类似GitHub的仓库的概念,那么镜像就类似于仓库中的一个个开源项目,全世界的开发人员都可以在仓库中找到合适的镜像(比如redis镜像,centos镜像等)下载到自己的机器上;
容器
就好像我们在GitHub上下了一个或多个项目,我们可以根据自己的需求,解压,运行,部署这些项目;当我们有了镜像之后,我们就可以通过一些指令让这些镜像运行为一个容器,接着我们可以在容器内部和宿主机(就是你装Docker的机器)进行一些容器的相关操作;
二、Docker的基本使用
Ⅰ、设置镜像仓库
结合Docker的三大组件,我们要使用Docker,就是对这三大组件进行操作,首先,我们需要设置Docker的镜像仓库;
vi /etc/docker/daemon.json//固定文件名,固定写法
//在文件中输入以下内容
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
//esc退出编辑状态 再使用 shift + : 后输入wq保存退出
Ⅱ、操作镜像
设置好了镜像仓库,此时我们就可玩玩镜像了,
1、查看镜像:docker images查看当前本地镜像
docker images //此时我们机器上应该是没有镜像的
2、搜索镜像:docker search 镜像名(支持模糊查询)
docker search redis
3、下载镜像:docker pull 镜像名
docker pull 镜像名称
4、删除镜像:docker rmi 镜像id
docker rmi e6cf45bda546 //rmi后是镜像id
//删除所有镜像,基本用不上
docker rmi `docker images -q`
Ⅲ、操作容器
当我们下载了我们需要的镜像之后,我们就可以开始创建和使用容器了
1、查看容器
使用docker ps 查看正在运行的容器
使用docker ps -a 查看所有容器
使用docker ps -l 查看最后一次运行的容器
使用docker ps -f status=exited 查看当前运行状态为exited的容器
2、 创建和启动容器
A、只创建不运行容器:docker create --name 容器名 镜像名:镜像标签
docker create --name mynginx02 nginx:latest
B、创建并运行容器并进入容器的命令行(exit退出命令行后容器就停止运行了)
docker run -ti --name mycentos04 centos:latest
// -t 代表terminal 表示进入命令行
// -i 代表init 代表初始化容器
Notes:以该模式创建的在容器内部命令行执行exit命令时,会停止运行
C、创建并后台运行容器
docker run -di --name mycentosDaemon centos:latest
// -d 代表daemon 表示以守护进程方式启动容器
D、 在容器后台运行时进入容器内部命令行
如果我们以守护进程方式启动的容器,或者我们使用docker start 启动的容器;而此时我们要进入容器中进行参数配置或者进行其他操作,此时则需要使用:docker exec -it 容器名或容器id /bin/bash命令
docker exec -it mycentosDaemon /bin/bash
E、启动和停止容器
对于使用docker create和使用docker run -ti 创建并退出的容器,状态是exited,此时我们需要使用docker start 容器名或容器id启动;
docker start mycentos04
3、文件复制与目录同步挂载
A、文件复制
宿主机————>容器内
docker cp 需要拷贝的文件或目录 容器名称:容器目录
容器内————>宿主机
docker cp 容器名称:容器目录 需要拷贝的文件或目录
//宿主机————>容器内
docker cp a.txt mycentosDaemon:/usr/wlt/
//容器内————>宿主机
docker cp mycentosDaemon:/usr/wlt/a.txt /usr/wlt/
B、目录同步挂载
可以将宿主机的某个目录和容器的目录进行同步挂载(即宿主机目录内容改变,容器内对应目录内容发生改变)
使用docker run -v 宿主机目录:容器目录;
docker run -di -v /usr/test/:/usr/local/test --name=mycentos05 centos:latest
4、查看运行中容器的信息
使用命令: docker inspect + 容器名或容器id
可以查看容器的一些信息,例如使用了哪个镜像、Ip地址、目录挂载情况等;
docker inspect mycentos05
总结
本篇主要介绍了docker的基本使用,下一篇主要使用docker进行应用的部署、以及使用dockerFile脚本操作容器以及容器的迁移与备份(因为容器的特性就是便于移植);