一、docker几个核心对象
镜像 image
容器 container
卷 volumes
网络 network
docker的镜像是由 镜像名+版本 组成的。如果没有指定镜像名没有指定版本,默认是latest版本最新版本。
二、常用命令 2.1 镜像命令下载镜像
docker pull nginx //下载镜像
docker pull nginx:v1.4.14
运行镜像
docker run -it nginx //运行镜像
docker run --name webserver -d -p 80:80 nginx // 运行镜像,--name 给镜像取一个名字 -d 后台运行模式 -p 镜像端口映射
镜像帮助信息
docker image --help // 获取镜像操作的命令帮助
搜索镜像
//docker search ... 镜像搜索
docker search nginx // 搜索nginx镜像
查看镜像历史信息
docker image history nginx // 查看镜像历史
查看镜像详细信息
docker image inspect nginx //查看镜像详细信息
列出镜像
docker images //列出镜像
docker image ls //列出镜像
docker image ls -a //docker image ls 命令列表中只显示顶层镜像。-a 参数可以显示包括中间层在内的所有镜像
docker image ls nginx //根据仓库名列出镜像
docker image ls nginx:v2 //根据某个特定标签列出镜像
查看镜像、容器、数据卷大小
docker system df //查看镜像、容器、数据卷所占的空间大小
删除镜像
docker image rm centos:v7 // 按照标签tag删除镜像,也可以根据image id删除
//提示:删除镜像的前提是该镜像没有运行成容器;docker image rm 等同docker rmi命令;如果需要强行删除已经运行为容器的镜像,可以使用-f选项来指定;
docker image rm af34 //根据ID删除镜像,一般取前3个字符或以上就可以了
docker image rm $(docker image ls -q nginx) //过滤删除命令。删除所有仓库名为 nginx 的镜像
docker image rm $(docker image ls -q -f before=nginx:v2) //-f 强制删除 -q 查询,这句命令:删除所有在 nginx:v2 之前的镜像
给镜像打tag
docker tag centos centos:v6.7 //给镜像打标签 tag
//提示:docker image tag 和docker tag 等同;都是用于给镜像打标签;打标签的意思类似给镜像取别名的意思;
2.2 容器命令新建并启动容器
docker run ... //新建并启动容器命令
docker run centos:v7 /bin/echo 'Hello World' //输出一个 'Hello World'之后终止容器
docker run -t -i centos:v7 /bin/bash // 启动一个bash端,允许用户进行交互,-t 让Docker分配一个伪终端(pesudo-tty)并绑定到容器的标准输入上,-i 让容器的标准输入保持打开
docker run -d centos:v7 /bin/sh -c "while true;do echo 11;sleep 1; done" //-d 在后台运行
//提示:可以用 docker logs 查看输出的结果
查看容器本身的信息
docker container ls // 查看容器信息
docker container ls -a
查看容器日志信息
docker container logs //获取容器的log输出信息
docker container logs [container ID or NAMES]
终止和启动容器
docker container stop // 终止一个运行中的容器
docker container ls -a // 可以查看容器终止的状态信息
docker container start //启动一个已经终止的容器
docker container restart // 将一个运行态的容器终止,然后重新启动
进入容器 docker attach 或 docker exec
docker run -dit centos
docker container ls
docker attach a12f // a12f 容器ID的前4个字符
docker run -dit centos
docker container ls
docker exec -it 34af bash // -i 这个参数没有分配伪终端但是保持了标准输出,-t 分配一个伪终端
docker exec --help // 查看更多exec的参数使用方法
导出容器
docker container ls -a
docker export r1dfdere112122 > centos.tar //r1dfdere112122 容器ID
导入容器快照
cat centos.tar | docker import - test/centos:v1.0 //本地导入
docker import URL //通过指定的url导入
删除容器
docker container rm 删除一个处于终止状态的容器
docker container rm centos
//提示:如果要删除一个运行中的容器,需要添加参数 -f 参数。 这时,docker 会发送 SIGKILL 信号给容器。
清理所有终止状态的容器
docker container ls -a // 查看所有已经创建包括终止状态的容器
docker container prune // 清除所有的容器
创建数据卷
docker volume create first-volume
查看所有的数据卷
docker volume ls
查看某一数据卷信息
docker volume inspect first-volume
挂载数据卷的容器
docker run -d -P \
--name web \
#-v first-volume:/webapp \ // -v 参数挂载
--mount source=first-volumn, target=http://www.likecs.com/webapp \
training/webapp \
python app.py
//创建一个名为web的容器,并挂载数据卷到容器的 /webapp 目录
查看数据卷信息
docker inspect web
删除数据卷
docker volumn rm first-volumn