镜像管理&容器管理

一、docker镜像管理命令

镜像管理命令

说明

docker images

查看本机镜像

docker search 镜像名称

从官方仓库查找镜像

docker pull 镜像名称:标签

下载镜像

docker push 镜像名称:标签

上传镜像

docker save 镜像名称:标签 -o 备份镜像名称.tar

备份镜像为tar包

docker load -i 备份镜像名称

导入备份的镜像文件

docker rmi 镜像名称:标签

删除镜像(必须先删除该镜像启动的所有容器)

docker history 镜像名称:标签

查看镜像的制作历史

docker inspect 镜像名称:标签

查看镜像的详细信息

docker tag 镜像名称:标签 新的镜像名称:新的标签

创建新的镜像名称和标签

二、docker容器管理命令

容器管理命令

说明

docker run -it(d) 镜像名称:标签 启动命令

创建启动并进入一个容器,后台容器使用参数 d

docker ps

查看容器 -a 所有容器,包含未启动的,-q 只显示id

docker rm 容器ID

-f 强制删除,支持命令重入

docker start|stop|restart 容器id

启动、停止、重启容器

docker cp 本机文件路径 容器id:容器内路径

把本机文件拷贝到容器内(上传)

docker cp 容器id:容器内路径 本机文件路径

把容器内文件拷贝到本机(下载)

docker inspect 容器ID

查看容器的详细信息

docker attach 容器id

进入容器的默认进程,退出后容器会关闭

docker attach 容器id [ctrl+p, ctrl+q]

进入容器以后,退出容器而不关闭容器的方法

docker exec -it 容器id 启动命令

进入容器新的进程,退出后容器不会关闭

三、容器相关

  1. 创建一个新容器运行命令

    docker run [OPTIONS] <repository>:<tag> [COMMAND] [ARG...]

    部分常用OPTIONS参数:

    参数

    说明

    -p

    指定端口映射,格式为:外部端口:容器端口

    -i

    以交互模式运行容器,通常与 -t 同时使用

    -t

    为容器重新分配一个伪输入终端,通常与 -i 同时使用

    -d

    后台运行容器,并返回容器ID

    --volume , -v

    绑定一个卷,格式为:外部路径:容器内部路径

    -m

    设置容器使用内存最大值

    --cpuset="0-2"
    --cpuset="0,1,2"

    绑定容器到指定CPU运行

    --name="blog"

    为容器指定一个名称

    示例

    # 80端口映射,data目录挂载,后台运行 docker run -p 80:80 -v /data:/data -d nginx:latest # 以交互模式启动容器,在容器内执行/bin/bash命令 docker run -it nginx:latest /bin/bash
  2. 容器的启动、停止与重启

    # 启动
    docker start <container> [container...]
    
    # 停止
    docker stop <container> [container...]
    
    # 重启
    docker restart <container> [container...]
  3. 打印容器列表

    docker ps [OPTIONS]

    部分常用OPTIONS参数:

    参数

    说明

    -a

    显示所有的容器,包括未运行的

    -n

    列出最近创建的n个容器

    -s

    显示总的文件大小

    -q

    只显示容器编号

  4. 创建一个新的容器,但不启动

    docker create [OPTIONS] <repository>:<tag> [COMMAND] [ARG...]
  5. 在运行的容器中执行命令

    docker exec [OPTIONS] <container> [COMMAND] [ARG...]
  6. 连接到正在运行中的容器

    无法退出连接,Ctrl+C/Ctrl+P/Ctrl+Q?实际使用中都不行!

    docker attach <container>
  7. 文件拷贝

    容器内路径的表达格式:容器Id:容器内路径

    docker cp <srcPath>  <destPath>
  8. 检查容器内文件的变动

    A:表示创建,D:表示删除,C:表示修改

    docker diff <container>
  9. 将当前容器打包成一个镜像

    docker commit [OPTIONS] <container> [<repository>:<tag>]

    示例:

    docker commit dc test:v6
  10. 查询容器的端口映射

    docker port <container>
  11. 导出容器为镜像文件

    docker export <repository>:<tag> > <imageFile>
    docker export <repository>:<tag> -o <imageFile>
  12. 阻塞当前终端的运行,直到容器停止运行

    docker wait <container> [container...]
  13. 打印容器的日志信息

    docker logs [OPTIONS] <container>

    部分常用OPTIONS参数:

    参数

    说明

    -f

    跟踪日志输出

    --since

    显示某个开始时间的所有日志

    -t

    显示时间戳

    --tail

    仅列出最新n条容器日志

  14. 查看容器中运行的进程信息

    docker top <container>
  15. 暂停容器的运行

    docker pause <container> [container...]
  16. 恢复容器的运行

    docker unpause <container> [container...]
  17. 删除容器

    docker rm [OPTIONS] <container> [container...]

    部分常用OPTIONS参数:

    参数

    说明

    -f

    通过 SIGKILL 信号强制删除一个运行中的容器

    -i

    移除容器间的网络连接,而非容器本身

    -v

    删除容器,并删除与容器关联的卷

  18. 终止一个正在运行的容器

    docker kill [OPTIONS] <container> [container...]

    部分常用OPTIONS参数:

    参数

    说明

    -s

    向容器发送一个信号

    示例:

    docker kill -s KILL nginx