文章目录

Docker常用命令

帮助类命令

docker version

docker info

docker --help

镜像命令

  • docker images #本地镜像列表
docker images -a #显示本地所有镜像

docker images -q #显示本地镜像的 image id

docker images -qa #显示本地所有镜像的 image id

docker images --digests #显示本地镜像列表 包括 镜像摘要信息(DIGEST)

docker images --digests --no-trunc #显示本地镜像列表+镜像摘要信息+完整的image id
  • docker search #镜像搜索命令
docker search 镜像名

docker search -s 30 tomcat #start 数量超过30的镜像列表

docker search -s 30 --no-trunc  tomcat #start 数量超过30的镜像列表 详细说明
  • docker pull #拉去镜像
docker pull 镜像名 #docker pull tomcat:lasest 默认最新
  • docker rmi #删除镜像
docker rmi -f 镜像名1 镜像名2  #强制删除 if 默认最新

docker rmi -f $(docker images -qa) #全部删除

容器开机启动

  • docker开机自启动

    chkconfig docker on
    
  • 容器设为开启自启 可以在创建容器时设置参数 —restart-always

    docker run --restart=always 容器名
    
  • 更新容器参数

    docker update --restart=always 容器名
    

容器命令

  • docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
 OPTIONS说明(常用):有些是一个减号,有些是两个减号
--name="容器新名字": 为容器指定一个名称;
-d: 后台运行容器,并返回容器ID,也即启动守护式容器;
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-P: 随机端口映射;
-p: 指定端口映射,有以下四种格式
      ip:hostPort:containerPort
      ip::containerPort
      hostPort:containerPort
      containerPort

创建交互式容器
    docker rum -it 容器  #交互式容器 -it
docker ps  显示正在运行的容器

OPTIONS说明(常用):
    -a :列出当前所有正在运行的容器+历史上运行过的
    -l :显示最近创建的容器。
    -n:显示最近n个创建的容器。
    -q :静默模式,只显示容器编号。
    --no-trunc :不截断输出。

docker ps -l -n 3

docker ps -q #正在运行的容器编号 

进入容器后退出:
    exit        容器停止退出
    ctrl+P+Q    容器不停止退出

启动容器:
    docker start 容器id或者容器名称
    docker restart  容器id或者容器名称

停止容器:
    docker stop 容器id或者容器名称
    docker kill 容器id或者容器名称  #强制停止

删除已停止的容器:
    docker rm 容器id或者容器名称 #删除已关闭的容器
    docker rm -f 容器id或者容器名称 #删除未关闭的容器
    docker ps -a -q|xargs docker rm #删除所有的exited容器

一次性删除多个容器:
    docker rm -f $(docker ps -a -q)
    docker ps -a -q | xargs docker rm 

创建守护式容器: -d
    docker run -d 容器
    docker run -d centos /bin/sh -c "while true;do echo hello zzyy;sleep 2;done"
    # 此时 docker ps 能看到该守护式容器 因为在运行程序
查看日志 
    -t 是加入时间戳
    -f 跟随最新的日志打印
    --tail 数字 显示最后多少条
    docker logs -tf --tail 10 容器id

容器中的进程
    docker top 容器id

查看容器细节信息:
    docker inspect 容器id

进入正在运行的容器并以命令行交互:
    docker attach 容器ID  #直接进入容器启动命令的终端,不会启动新的进程
    docker exec -it 容器id /bin/bash  #exxec是在容器中打开新的终端,并且可以启动新的进程
    docker exec -it 容器id ls  #不进去直接返回ls结果

从容器内拷贝文件到主机上:
    docker cp  容器ID:容器内路径 目的主机路径
    docker cp xxx:/tmp/yum.log /root
  • 所有命令

image

attach    Attach to a running container                 # 当前 shell 下 attach 连接指定运行镜像
build     Build an image from a Dockerfile              # 通过 Dockerfile 定制镜像
commit    Create a new image from a container changes   # 提交当前容器为新的镜像
cp        Copy files/folders from the containers filesystem to the host path   #从容器中拷贝指定文件或者目录到宿主机中
create    Create a new container                        # 创建一个新的容器,同 run,但不启动容器
diff      Inspect changes on a container's filesystem   # 查看 docker 容器变化
events    Get real time events from the server          # 从 docker 服务获取容器实时事件
exec      Run a command in an existing container        # 在已存在的容器上运行命令
export    Stream the contents of a container as a tar archive   # 导出容器的内容流作为一个 tar 归档文件[对应 import ]
history   Show the history of an image                  # 展示一个镜像形成历史
images    List images                                   # 列出系统当前镜像
import    Create a new filesystem image from the contents of a tarball # 从tar包中的内容创建一个新的文件系统映像[对应export]
info      Display system-wide information               # 显示系统相关信息
inspect   Return low-level information on a container   # 查看容器详细信息
kill      Kill a running container                      # kill 指定 docker 容器
load      Load an image from a tar archive              # 从一个 tar 包中加载一个镜像[对应 save]
login     Register or Login to the docker registry server    # 注册或者登陆一个 docker 源服务器
logout    Log out from a Docker registry server          # 从当前 Docker registry 退出
logs      Fetch the logs of a container                 # 输出当前容器日志信息
port      Lookup the public-facing port which is NAT-ed to PRIVATE_PORT    # 查看映射端口对应的容器内部源端口
pause     Pause all processes within a container        # 暂停容器
ps        List containers                               # 列出容器列表
pull      Pull an image or a repository from the docker registry server   # 从docker镜像源服务器拉取指定镜像或者库镜像
push      Push an image or a repository to the docker registry server    # 推送指定镜像或者库镜像至docker源服务器
restart   Restart a running container                   # 重启运行的容器
rm        Remove one or more containers                 # 移除一个或者多个容器
rmi       Remove one or more images             # 移除一个或多个镜像[无容器使用该镜像才可删除,否则需删除相关容器才可继续或 -f 强制删除]
run       Run a command in a new container              # 创建一个新的容器并运行一个命令
save      Save an image to a tar archive                # 保存一个镜像为一个 tar 包[对应 load]
search    Search for an image on the Docker Hub         # 在 docker hub 中搜索镜像
start     Start a stopped containers                    # 启动容器
stop      Stop a running containers                     # 停止容器
tag       Tag an image into a repository                # 给源中镜像打标签
top       Lookup the running processes of a container   # 查看容器中运行的进程信息
unpause   Unpause a paused container                    # 取消暂停容器
version   Show the docker version information           # 查看 docker 版本号
wait      Block until a container stops, then print its exit code   # 截取容器停止时的退出状态值
  • docker commit
docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]

docker commit -m="custom tomcat" -a="xwder" 容器id xwder-tomcat:1.0.1
  • 导出镜像
save:
docker save [options] images [images...]
示例
    docker save -o nginx.tar nginx:latest
    或
    docker save > nginx.tar nginx:latest
其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag) 

load:
docker load [options]
示例
    docker load -i nginx.tar
    或
    docker load < nginx.tar
其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息

export:
docker export [options] container
示例
    docker export -o nginx-test.tar nginx-test
其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)

import:
docker import [options] file|URL|- [REPOSITORY[:TAG]]
示例
    docker import nginx-test.tar nginx:imp
    或
    cat nginx-test.tar | docker import - nginx:imp

区别
export命令导出的tar文件略小于save命令导出的
export命令是从容器(container)中导出tar文件,而save命令则是从镜像(images)中导出
基于第二点,export导出的文件再import回去时,无法保留镜像所有历史(即每一层layer信息,不熟悉的可以去看Dockerfile),不能进行回滚操作;
而save是依据镜像来的,所以导入时可以完整保留下每一层layer信息。如下图所示,nginx:latest是save导出load导入的,nginx:imp是export导出import导入的。
————————————————
原文链接:https://blog.csdn.net/ncdx111/article/details/79878098