Docker基础命令整理
docker help:
docker help [COMMAND]
例: docker help run
docker run --help:查看该命令的帮助文档
docker attach: 挂载正在后台运行的容器到前台
docker attach [OPTIONS] Container
docker run: 在一个新的容器中执行命令 (CTRL-p CTRL-q 退出至后台运行)
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
例:
docker ps: 列出当前容器
docker ps [OPTIONS]
命令参数:
-a, --all=false 显示所有容器,包括当前没有运行的容器
-f, --filter=[] 按条件过滤容器, 可选的过滤选项:
exited=
-l, --latest=false 显示最新的一个容器
-n num 显示最新的N个容器
--no-trunc=false 不要截断输出
-q, --quiet=false 仅显示容器ID
-s, --size=false 显示容器大小
docker ps 查看当前正在运行的容器
docker ps -a 查看当前的所有容器
docker images: 列出当前镜像
docker images [OPTIONS] [NAME]
命令参数:
-a, --all=false 显示所有镜像,包括中间生成的临时镜像
-f, --filter=[] 通过标签过滤 (i.e. 'dangling=true')
--no-trunc=false 不要截断输出
-q, --quiet=false 仅显示容器ID
例子:
docker images 显示当前仓库中的镜像
docker images -a 显示当前仓库中的镜像与临时镜像
docker logs: 显示容器的日志
docker logs CONTAINER
命令参数:
-f, --follow=false 等待容器后续的输出(类似 tail -f)
-t, --timestamps=false 显示时间戳
--tail="all"
例子:
1. docker logs 7bb0e258aefe
2. docker logs --timestamps=true 7bb0e258aefe
3. docker logs --timestamps=true 7bb0e258aefe > 7bb0e258aefe.log
终端A:
docker logs --follow 7bb0e258aefe
终端B:
docker attach 708cc7ec0f23 (随便执行一些命令可以看到终端A会有实时输出)
docker inspect:显示镜像或容器的详细信息
docker inspect CONTAINER|IMAGE [CONTAINER|IMAGE...]
命令参数:
-f, --format="" 选择输出内容,--format="{{.NetworkSettings.IPAddress}}"
例子: docker inspect 7bb0e258aefe
docker stop: 停止运行中的容器 (CTRL-d 强制退出, Exited (0))
Docker stop [OPTIONS] CONTAINER [CONTAINER...]
命令参数:
-t, --time=10 杀掉容器进程之前,等待的时间
例子: docker stop 7bb0e258aefe
docker kill:杀掉一个运行中的容器 (Exited (-1))
docker kill [OPTIONS] CONTAINER [CONTAINER...]
命令参数:
- s, --signal="KILL" 选择向容器发出的Signal
例子:
sudo docker kill 7bb0e258aefe
docker start:重启停止的容器
Docker start CONTAINER [CONTAINER...]
命令参数:
-a,--attach=false Attach container'sSTDOUT and STDERR and forward allsignals to the process
-i,--interactive=false Attach container'sSTDIN
例子: docker start 7bb0e258aefe
docker restart:重启运行中的容器
docker cp:拷贝容器中的文件
docker cp CONTAINER:PATH HOSTPATH
例子:docker cp c3f279d17e0a:/home/hyzhou/answer.txt . 将镜像中的/home/hyzhou/answer.txt文件拷贝到当前目录下
docker rm:删除容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
命令参数:
-f, --force=false 强制删除容器(使用SIGKILL)
-l, --link=false Removethe specified link and not the underlyingcontainer
-v, --volumes=false Removethe volumes associated with the container
例子:docker rm my_ubuntu 删除容器
docker top: 查看容器输出
docker top CONTAINER [ps OPTIONS],[ps OPTIONS]的意思是, 你可以在这个命令后面加上使用ps命令时的各种参数
例子:1.docker top 708cc7ec0f23
docker events:实时监听容器的事件
docker events [OPTIONS]
命令参数:
--since="" 显示某一个时间戳之后的events
--until="" 实时监听到某个时间戳为止
例子:
A终端:
sudo docker events 终端A等待Docker系统信息
sudo docker events --since 1378216169
sudo docker events --since '2013-09-03'
sudo docker events--since '2013-09-03 15:49:29'
sudo docker events --since'2013-09-03 15:49:29 +0200CEST'
sudo docker events > docker.log & 后台记录Docker的容器事件
B终端:
sudo docker restart 708cc7ec0f23 从B终端关闭容器
A终端显示:
2014-09-06T23:08:21+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2:(fromubuntu:latest) die
2014-09-06T23:08:22+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2:(fromubuntu:latest) start
2014-09-06T23:08:22+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2:(fromubuntu:latest) restart
docker history: 显示镜像的历史记录
docker history [OPTIONS] IMAGE
命令参数:
--no-trunc=false 不要截断输出
-q, --quiet=false 仅显示容器ID
docker pull: 从远程拉取镜像
docker pull NAME[:TAG]
例子:docker pull ubuntu:latest
docker push: 推送镜像到远程仓库
docker push NAME[:TAG]
例子:docker push hyzhou/ubuntu:3.2.3
docker commit: 将容器打包成新的镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
命令参数:
-a, --author="" 作者信息,"John Hannibal Smith
-m, --message="" 提交信息
-p, --pause=true 在提交镜像时暂停容器
例子:docker commit c3f279d17e0a Hyzhou/my_ubuntu:3.2.3
docker commit -a "Hyzhou
docker build: 使用Dockerfile构建新镜像
docker build [OPTIONS] PATH|URL|-
命令参数:
--force-rm=false 移除构建时生成的中间容器
--no-cache=false Donot use cache when building the image
-q, --quiet=false 不显示容器的输出
--rm=true 构建成功后,移除构建时生成的中间容器
-t, --tag="" 构建成功后,新建镜像的名称
docker tag: 为镜像加上标签
docker tag [OPTIONS] IMAGE[:TAG][REGISTRYHOST/][USERNAME/]NAME[:TAG]
命令参数:
-f, --force=false 强制打上标签?
例子:
sudo docker tag ubuntu:latest hyzhou/my_ubuntu:3.2.3 给ubuntu:latest打上新TAG:hyzhou/my_ubuntu:3.2.3
sudo dockertag eb601b8965b8 ubuntu:latest 给eb601b8965b8镜像打上TAG: ubuntu:latest(会转换原有的TAG指向)
docker save: 将image保存为tar压缩文件
docker save [OPTIONS] IMAGE [IMAGE...]
-o, --output="" 写入到一个文件中作为输出,默认是标准输出流
例子:
docker save --output ubuntu.tar ubuntu:latest 将Ubuntu的最新镜像打包为ubuntu.tar
docker save ubuntu:latest > ubuntu.tar 将Ubuntu的最新镜像打包为ubuntu.tar
docker load: 将tar压缩文件保存为image
Docker load [OPTIONS]
命令参数:
-i, --input="" 读取一个压缩文件作为输入,默认是标准输入流
例子:1.docker load --input ubuntu.tar 读取ubuntu.tar作为镜像
2.docker load < ubuntu.tar 读取ubuntu.tar作为镜像
docker export: 把容器系统文件打包并导出来,方便分发给其他场景使用。
docker export CONTAINER
例子:
sudo docker export my_ubuntu > ubuntu.tar 将Ubuntu的最新镜像打包为ubuntu.tar
docker import: 加载容器系统文件
docker import URL|- [REPOSITORY[:TAG]]
例子:
sudo docker import http://example.com/exampleimage.tgz
cat exampleimage.tgz | sudodocker import -exampleimagelocal:new