Docker常用命令记录

一、帮助命令 

# 版本验证
docker version
# 容器详细信息,比如版本号、有几个镜像、当前运行的有几个、关闭的有几个等等
docker info
# 帮助命令,公式:docker [OPTIONS] COMMAND
docker --help

二、镜像命令

# 列出本地主机上的镜像
docker images
# 详细有4种,可以通过docker images --help查看
# 公式:docker images [OPTIONS] [REPOSITORY[:TAG]]
# -a 列出本地所有镜像
# -q 只显示镜像ID
# -qa 显示所有镜像ID
# --digests 显示摘要
# --no-trunc 显示完整镜像信息
docker images -a

# 查看镜像变更历史
docker history centos


# 去官方仓库查找 hello-world 这个镜像(查找是在官方,下载是在自己配置的源)
# 公式:docker search [OPTIONS] TERM
# --no-trunc 显示完整的镜像描述
# -s 100 列出收藏数不小于100的镜像(相当于点赞数)
# --automated 只显示 AUTOMATED build (自动构建)的镜像
# 展示列表有一列 OFFICIAL 表示的官方镜像
docker search hello-world

# 下载镜像
# 公式:docker pull [OPTIONS] NAME[:TAG|@DIGEST]
# options 可以通过 --help查看
# 不写后面的 tag 标签的话默认下载最新版 Using default tag: latest
docker pull tomcat

# 删除镜像
# 公式:docker rmi [OPTIONS] IMAGE [IMAGE...]
# 镜像后面不跟:tag 默认删除的就是最新版 latest
docker rmi hello-world
# 如果正在镜像正在运行会提示如下
Error response from daemon: conflict: unable to remove repository reference "hello-world" (must force) - container 3dac5402f803 is using its referenced image fce289e99eb9
# 可以通过 -f 参数强制删除
docker rmi -f hello-world
# 删除多个
docker rmi -f hello-world nginx
# 删除所有,查询出所有的镜像id并删除
docker rmi -f $(docker images -qa)

三、容器命令

# 有镜像才能新建容器,这是前提(下载一个centOS镜像用于演示)

# 新建并启动交互式容器
# 公式:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
# 常用 OPTIONS 
# --name="新容器名称" 为容器指定一个名称
# -d 后台运行,返回容器ID,也即是启动守护式容器
# -i 启动交互式容器,通常和 -t 一起使用
# -t 为容器重新分配一个伪输入终端, 通常和 -i 一起使用
# -P (大写P)随机端口映射
# -p 指定端口映射,有以下四种方式(docker ps 可以看到端口信息)
    # ip:hostPort:containerPort
    # ip::containerPort
    # hostPort:containerPort
    # containerPort
# 以 -P (大写P)启动tomcat
docker run -it -P tomcat
# 以 -p (小写p)启动tomcat
docker run -it -p 8888:8080 tomcat
# 最后的centos是镜像名称,也可以换成镜像ID
docker run -it --name mycentos centos
# 以 /bin/bash (也是默认)方式启动
docker run -it centos /bin/bash
# 以后台守护式启动(这种没有前台进程的容器,启动后就会立即关闭)
docker run -d centos
# 注意:docker 容器后台运行,就必须有一个前台进程


# 列出当前所有正在运行的容器
# 公式:docker ps [OPTIONS]
# -a 列出当前正在运行的和历史上运行过的镜像
# -l 显示最近创建的容器(上次运行的)
# -n 显示最近创建的n个容器(上n此运行的)
# -q 静默模式,只显示容器编号
# --no-trunc 不截断输出
docker ps
#会出现一个列表
# 分别是:容器ID 镜像名称 命令方式 创建时间 运行时间 端口 名称(运行的时候没用通过 --name 指定的话,随机生成一个名称)

# 日志查看
# 公式:docker logs [OPTIONS] CONTAINER
# -t 加入时间戳
# -f 跟随最新的日志打印
# --tail 数字显示最后多少条
docker logs -t -f --tail 3 f732404b97bc
# 另外一种持续追加
docker logs -t -f f732404b97bc

# 查看容器内的进程
# 公式:docker top CONTAINER [ps OPTIONS]
docker top f732404b97bc

# 查看容器内细节
# 公式:docker inspect [OPTIONS] NAME|ID [NAME|ID...]
# 会以数组的形式展示信息,包含创建时间、ID等等信息
docker inspect f732404b97bc

# 从容器中拷贝文件到主机上
# 公式:docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
# docker cp 容器id:容器内路径 目的主机路径
docker cp 73f7686bb553:/tmp/yum.log /root


# 退出容器
# 停止容器并退出
exit
# 退出但不停止容器
ctrl+P+Q

# 重新进入正在运行的容器,并以命令行交互,有两种方式
# 第一种,公式:docker attach [OPTIONS] CONTAINER
docker attach 73f7686bb553
# 第二种,公式:docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
# 相当于启动一个新的交互终端
docker exec -it 73f7686bb553 /bin/bash
# 直接执行命令,返回结果
docker exec -t 73f7686bb553 ls -l /tmp
########## 区别 #########
# attach 直接进入容器启动命令的终端,不会启动新的进程
# exec 在容器中打开新的终端,并且可以启动新的进程

# 启动容器
# 公式:docker start [CONTAINER ID]
docker start a47a95ca552a(容器ID)

# 重启容器
# 公式:docker restart [CONTAINER ID]

# 停止容器
# 公式:docker stop [CONTAINER ID]

# 强制停止容器
# 公式:docker kill [CONTAINER ID]

# 删除已停止的容器
# 公式:docker rm [CONTAINER ID]
# rm -f 代表强制删除

# 批量删除已停止的容器
# 公式:docker rm -f $(docker ps -a -q)
# 公式:docker ps -a -q | xargs docker rm

 

发布了81 篇原创文章 · 获赞 15 · 访问量 8万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章