文
章
目
录
章
目
录
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
:镜像的idCREATED
:镜像的创建时间SIZE
:镜像的大小
指令可选项:
-a, --all Show all images (default hides intermediate images)(显示所有镜像) --digests Show digests(不常用) -f, --filter filter Filter output based on conditions provided(不常用) --format string Pretty-print images using a Go template(不常用) --no-trunc Don't truncate output(不常用) -q, --quiet Only show image IDs(只显示镜像ID)
比较常用的就是
docker images -aq
2)搜索镜像
官网仓库搜索镜像地址为 镜像仓库,我们也可以使用如下指令搜索:
docker search
可选项:
-f, --filter filter Filter output based on conditions provided(过滤) --format string Pretty-print search using a Go template(不常用) --limit int Max number of search results (default 25)(不常用) --no-trunc Don't truncate output(不常用)
3)下载镜像
docker pull
注意:docker pull默认使用最新版,我们可以加上tag来指定不同的版本
比如:
#直接下载最新的mysql docker pull mysql #下载mysql5.7 docker pull mysql:5.7
#删除指定的镜像,可以根据id或名称 docker rmi -f 镜像id #删除多个容器 docker rmi -f 镜像id 镜像id 镜像id 镜像id #删除全部的镜像 docker rmi -f $(docker images -aq)
三、容器命令
说明:我们有了镜像才可以创建容器,我们下载一个最新版centos
镜像来测试学习
docker pull centos
1)新建容器并启动
#命令格式 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仓库中
更全的Docker指令及其可选参数说明,可参考菜鸟教程Docker指令大全