Dokcer里面有很多命令,全部的可以参考官方Reference文档
命令太多我们只需要掌握部分命令即可
预备:后台命令
针对CentOS7系统,我们对docker后台进程的常用操作命令如下:
复制代码
#启动docker服务
systemctl start docker
#停止docker服务
systemctl stop docker
#重启docker服务
systemctl restart docker
#查看docker服务状态
systemctl status docker
#设置开机启动docker服务
systemctl enable docker
一、帮助命令
#显示docker的版本信息
docker version
#显示docker的系统信息,包括镜像和容器的数量
docker info
#帮助命令
docker 命令 --help
二、镜像命令
1)查询镜像
#查看所有本地的主机上的镜像
docker images
- 解释:
REPOSITORY:镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像的id
CREATED:镜像的创建时间
SIZE:镜像的大小
2)搜索镜像
官网仓库搜索镜像地址为 镜像仓库,我们也可以使用如下指令搜索:
docker search
3)下载镜像
docker pull
注意:docker pull默认使用最新版,我们可以加上tag来指定不同的版本
比如:
#直接下载最新的mysql
docker pull mysql
#下载mysql5.7
docker pull mysql:5.7
4)删除镜像
#删除指定的镜像,可以根据id或名称
docker rmi -f 镜像id
#删除多个容器
docker rmi -f 镜像id 镜像id 镜像id 镜像id
#删除全部的镜像
docker rmi -f $(docker images -aq)
三、容器命令
说明:我们有了镜像才可以创建容器,我们下载一个最新版centos镜像来测试学习
1)新建容器并启动
docker pull centos
#命令格式
docker run [可选参数] image
#参数说明
#给容器命名,比如tomcat01 tomcat02,用来区分容器
--name="Name"
#后台方式运行
-d
#使用交互方式运行,进入容器查看内容
-it
#指定容器的端口
-p
-p ip:主机端口:容器端口
-p 主机端口:容器端口 (常用)
-p 容器端口
直接容器端口
#随机指定端口
-P
注意:区分-p的大小写不同,含义也不同
测试,启动并进入容器,执行如下指令:
docker run -it centos /bin/bash
ls查看容器内的centos。
2)从容器中退回主机
#直接容器停止并退出
exit
#退出容器但不停止容器
Ctrl + P +Q
3)列出所有运行的容器
#列出当前正在运行的容器
docker ps
#可选参数
#列出当前正在运行的容器+带出历史运行过的容器
-a
#显示最近创建的容器
-n=数值
#只显示容器的编号
-q
4)删除容器
#删除指定的容器,不能删除正在运行的容器,如果要强制删除rm -f
docker rm 容器id
#删除所有的容器
docker rm -f $(docker ps -aq)
#或 删除所有的容器
docker ps -a -q | xargs docker rm
5)启动和停止容器的操作
#启动容器
docker start 容器id
#重启容器
docker restart 容器id
#停止当前正在运行的容器
docker stop 容器id
#强制停止当前容器
docker kill 容器id
四、其他常用命令
1)后台启动容器
#命令
docker run -d 镜像名
问题:
我们后台启动后,执行docker ps, 发现centos停止了,
原因在于:
docker 容器使用后台运行
就必须要有要一个前台进程
如果没有前台进程
docker会发现没有应用
就会自动停止。
2)查看日志
#命令
docker logs [可选参数] 容器id
#可选参数
#显示全部日志
-tf
#显示最后几条日志
--tail 数量
比如,我们查看某个容器的最后10条日志记录:
docker logs -tf --tail 10 fce6b89171bc
3)查看容器中进程信息
docker top 容器id
4)查看镜像的元数据
docker inspect 容器id
5)进入当前正在运行的容器
我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
#方式1:进入容器后开启一个新的终端,可以在里面操作(常用)
docker exec -it 容器id bashShell
#方式2:进入容器正在执行的终端,不会启动新的进程!|
docker attach 容器id
提示:bashShell一般为/bin/bash或/bin/sh
6)从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 目的的主机路径
五、Docker命令小结
#docker容器相关操作的命令
docker create #创建一个容器但是不启动它
docker run #创建一个容器并启动它
docker stop #停止一个容器
docker start #启动一个停止状态的容器
docker restart #重启一个容器
docker rm #删除一个容器
docker kill #发送信号给容器
docker attach #连接(进入)到一个正在运行的容器
docker wait #阻塞一个容器,直到容器停止运行
#获取容器相关信息
docker ps #显示状态运行位(up)的容器
docker ps -a #显示所有的容器,包括运行(Up)和退出的(exited)
docker inspect #深入容器内部获取容器所有信息
docker logs #查看容器的日志(stdout/stderr)
docker port#显示容器的端口映射
docker top #显示容器的进程信息
docker diff #显示容器文件系统的前后的变化
#在容器内部执行命令
docker exec -it newdb /bin/bash #在newdb容器内部执行shell命令
#导出容器
docker cp #从容器里面向外拷贝文件
docker export #将容器整个文件系统导出为一个tar包,不带layers,tag等信息
#镜像操作
docker p_w_picpaths #显示内地所有的镜像列表
docker import #从一个tar包创建一个镜像,往往和export结合使用
docker build #使用Dockfile 创建镜像(推荐)
docker commit #从容器创建镜像
docker rmi #删除一个镜像
docker load #从一个tar包创建一个镜像,和save配合使用
docker save #将一个镜像保存为一个tar包,带layers和tag信息
docker history #显示生成一个镜像的历史命令
docker tag #为镜像起一个别名
#镜像仓库操作
docker login #登陆到一个registry
docker search #从registry仓库搜索镜像
docker pull #从仓库下载镜像到本地
docker push #将一个镜像push到registry仓库中
原文来自: panziye