docker基本命令的使用
docker的三要素:镜像,容器,仓库
镜像相当于类
容器相当于对象
一个镜像可以创建出多个容器实例
鲸鱼背上有集装箱
大海------windows10
鲸鱼-----docker
集装箱------容器实例 来自镜像模板
- 启动docker:systemctl start docker
- 查看版本:docker version
- 查看版本详情:docker info
镜像不是单独的,它还有中间层,是一层一层的,有多层的。
镜像命令:
- 显示本地镜像:docker images
- 显示本地所有镜像:docker images -a
- 显示本地镜像的id:docker images -q
- 显示本地镜像摘要信息:docker images --digests
- 显示本地镜像完整信息:docker images --no-trunc
- 从dockerhub上查找镜像:docker search 镜像名字(-s:列出收藏数不小于多少的,–no-trunc:显示完整信息,–automated:列出automated build类型的镜像)
- 删除单个镜像:dokcer rmi -f 镜像ID
- 删除多个镜像:docker rmi -f 镜像名1 镜像名2
- 删除本机所有镜像:dokcer rmi -f $(docker images -qa)
容器命令:
- 新建并启动容器:docker run [OPTIONS] IMAGESID (options参数说明:-i:以交互模式运行容器,通常与-t同时使用。 -t:为容器重新分配一个伪输入终端,通常与-i同时使用。 -d:后台运行容器,并返回容器ID,也即启动守护式容器。)
- 列出所有正在运行的容器:docker ps [OPTIONS] ()
- 退出容器(两种方式):exit (容器停止退出)
- ctrl+P+Q (容器不停止退出)
- 启动容器:docker start 容器id或容器名
- 重启容器:docker restart 容器id或容器名
- 停止容器:docker stop 容器id或容器名
- 强制停止容器:docker kill 容器id或容器名
- 删除已经停止的容器:docker rm 容器id
- 一次删除多个容器:docker rm -f $(docker ps -a -q) 或 (docker ps -a -q | xargs docker rm)
- 启动守护式容器:docker run -d 容器名
- 查看容器日志:docker logs -f -t --tail 容器id
- 查看容器内运行的进程:docker top 容器id或容器名
- 查看容器内部细节:docker inspect 容器id或容器名
- 从容器中拷贝文件到主机上:docker cp 容器id:容器内路径 目的主机路径
docker镜像commit:docker commit -m=""
Docker容器数据卷
docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据作为镜像的一部分保存下来,那么当容器删除之后,数据也就没了。
为了能保存数据,docker中我们使用卷,类似于我们redis中的rdb和aof文件。
卷的用处:容器的持久化,容器间继承和共享数据。
卷的特点:
- 1.数据卷可以在容器中共享或重用数据
- 2.卷中的更改可以直接生效
- 3.卷中的更改不会包含在镜像的更新中
- 4.数据卷的生命周期一直持续到没有容器使用它为止
数据卷的添加:(相当于在宿主机和容器内各添加一个共享文件的目录)
- 直接命令添加:docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名(有读写权限) docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名 (只读)
- 用DockerFile添加:docker build -f /mydocker/DockerFile -t /zzyy/centos .(这里是以原来的镜像为模板创建了一个新的镜像)
- 以一个容器为模板创建另一个容器:docker run -it --name dc03 --volumes-from dc01 zzyy/centos