可以说docker的命令基本就是融合了linux和git的常用命令,所以不必花很多时间,基本使用过几次就能记住了。下面也只介绍工作中常用的,详细还请参考官网
1.系统命令
查看docker版本
docker version
查看docker信息
docker info
docker命令查询,这个非常有用,当你不记得某个命令就可以用它来查看
docker --help
2.镜像命令
因为镜像是一个只读状态的,所以对于只读状态的东西命令都是很少
1.列出本地主机上的全部镜像
docker images [OPTIONS]
OPTIONS说明:
-a :列出本地所有的镜像(含中间映像层)
-q :只显示镜像ID。
--digests :显示镜像的摘要信息
--no-trunc :显示完整的镜像信息
查询结果解析
REPOSITORY:表示镜像的仓库源TAG:镜像的标签IMAGE ID:镜像IDCREATED:镜像创建时间SIZE:镜像大小
同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
2.查询仓库某个镜像名字
docker search xxx
docker search mysql
3.下载镜像
docker pull xxx
是不是很像git拉去代码啊,是的基本一致拉去镜像,下面我们拉去一个mysql镜像
docker pull mysql
后面没有带参数就是拉去最新版本
docker pull mysql:5.7
拉取5.7版本的mysql
4.删除镜像
docker rmi 某个XXX镜像名字ID
删除单个 docker rmi -f 镜像ID
删除多个 docker rmi -f 镜像名1:TAG 镜像名2:TAG
删除全部 docker rmi -f $(docker images -qa) $(docker images -qa)查询出当前本机所有镜像的ID
5.从容器创建一个镜像
docker commit 这里和git有点区别,git里面是将代码提交到工作区,而这里是我在当前容器里面增删了东西,我想把我增删东西的容器重新制作成功一个镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
比如我们在centos容器里面增加一些内容,然后重新打包成新的镜像
我们在centos里面的/opt目录下增加另一个asd.sh打印hello world
然后我们退出容器进行打包成新的镜像
6.推送一个镜像到远端仓库
docker push将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
docker push [OPTIONS] NAME[:TAG]
OPTIONS说明:
--disable-content-trust :忽略镜像的校验,默认开启
3.容器命令
有镜像才能创建容器(有模板才能印刷)
docker pull centos 先拉取centos镜像
1.新建并启动容器(运行就是新建容器)
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明(常用):有些是一个减号,有些是两个减号
--name=""容器新名字"": 为容器指定一个名称;
-d: 后台运行容器,并返回容器ID,也即启动守护式容器;
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-P: 随机端口映射;
-p: 指定端口映射,有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
2.列出当前所有正在运行的容器
docker ps [OPTIONS]
经常查看正在运行的容器一般不带参数
OPTIONS说明(常用):
-a:列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n:显示最近n个创建的容器。
-q :静默模式,只显示容器编号。
--no-trunc :不截断输出。
3.退出当前容器
exit 容器停止退出
ctrl+P+Q 容器不停止退出(不区分大小写)
4.重新进入正在运行的容器
docker exec -it 容器ID bashShell(shell 命令)
docker exec -it 容器ID /bin/bash 进入到前端交互
docker attach 容器ID
两个区别
attach 直接进入容器启动命令的终端,不会启动新的进程(如果容器之前是后台启动的那就会有问题,同一个进程如何做到及后台有前端交互)
exec 是在容器中打开新的终端,并且可以启动新的进程
5.从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径
6.重启,停止容器
docker start 容器ID或者容器名
docker restart 容器ID或者容器名
docker stop 容器ID或者容器名
docker kill 容器ID或者容器名 强制停止(和linux里面的kill杀手一个进程雷同)
7.删除容器
删除容器前一般都要先停止
docker rm 容器ID
一次性删除多个容器
docker rm -f $(docker ps -a -q)(和删除镜像十分相似)
docker ps -a -q | xargs docker rm
本帖子内容本非完全原创,大部分参考尚硅谷2018周阳老师的教程(B站)。强烈推荐