大家好 我是积极向上的湘锅锅
1. Docker 架构
首先Docker由三大部分组成
- Clients:客户端
通过docker的客户端操作命令,然后命令发送到daemon(守护进程)里面去执行操作
- Hosts:主机
主机包括俩个部分,分别是local host 和 remote host,意思是本机和远程的机器。
而在local host这个部分里面,在我们安装完docker之后,docker会以一个daemon(守护进程)的形式存在,也就是存在于我们后台的进程里面。
其中docker里面会有俩个重要的内容,分别是container(容器)和image(镜像)
- 镜像(image):Docker镜像(Image),就相当于是一个root文件系统,比如官方镜像ubuntu:16.04就包含了一个完整的一套Ubuntu16.04最小系统的root文件系统
- 容器(container):镜像(image)和容器(Containner)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体,容器可以被创建,启动,停止,删除,暂停等。
- Registries:仓库
而镜像则来源于远程的仓库,仓库可以看错一个代码控制中心,用来保存镜像,而仓库包括俩个部分:
Docker hub:是docker官方提供的仓库,里面有很多很多的镜像文件,如果需要使用的话只需要拉去或者下载下来即可,不过速度比较慢
private registry:自己的仓库,可以做一些自己镜像的传递和共享,速度比较快
2. Docker 服务相关命令
- 启动docker服务
systemctl start docker
- 查看docker服务状态
systemctl status docker
- 停止docker服务
systemctl stop docker
- 重启docker服务
systemctl restart docker
- 默认开机启动docker服务
systemctl enable docker
- 取消Docker服务开机自启动
systemctl disable docker
3 . Docker 镜像相关命令
- 查看镜像:查看本地所有的镜像
docker images
#查看镜像所用镜像的id
docker images -q
- 搜索镜像:从网络中查找需要的镜像
docker search 镜像名称
- 拉取镜像:从Docker仓库下载镜像到本地,镜像名称格式为名称版本号,如果版本号不指定则是最新的版本,如果不知道镜像版本,可以去docker hub搜索对应的镜像查看
docker pull 镜像名称
- 删除镜像:删除本地镜像
# 删除本地镜像
docker rmi 镜像id
#删除所有本地镜像
docker rmi `docker images -q`
# 删除多个镜像
docker image rm myimage1 myimage2
# 删除使用 标签的所有镜像
docker image rm $(docker image ls -q -f dangling=true)
# 强制删除镜像
docker image rm -f myimage
4 . Docker 容器相关命令
- 查看容器
#查看正在运行的容器
docker ps
#查看所有容器
docker ps -a
- 创建并启动容器
docker run 参数
参数说明:
- -i:保持容器运行,通常与-t同时使用,加入it这俩个参数之后,容器创建后自动进入容器,退出后,容器自动关闭
- -t:为容器重新分配一个伪输入终端,通常与-i同时使用
- -d:以守护(后台)模式运行容器,创建一个容器在后台运行,需要使用docker exec进入容器,退出后,容器不会关闭。
- -it 创建的容器一般称为交互式容器,-id创建的容器一般称为守护式容器
- – name:为创建的容器命名
# 例子1
docker run -it --name=c1 centos:7 /bin/bash
# 例子2
docker run -id --name=c2 centos:7
docker exec -it c2 /bin/bash
#退出容器
exit
- 进入容器
#退出容器,容器不会关闭
docker exec 参数
- 停止容器
docker stop 容器名称
- 启动容器
docker start 容器名称
- 删除容器:如果容器是运行状态则删除失败,需要停止容器才能删除
docker rm 容器名称
- 查看容器信息
docker inspect 容器名称