第二章 docker的基本命令

1 docker中镜像和容器的概念

首先我们从网上拉取的都是docker的镜像,镜像运行后就是一个docker容器,

一个镜像可以有多个容器。

镜像和容器的关系类似Java中的类和对象

docker --help

查看docker命令
在这里插入图片描述

docker的命令使用方式为docker [OPTIONS] COMMAND

查看docker的信息,包括容器,镜像,版本,代理等信息

docker info
在这里插入图片描述

2 镜像命令

查看本地所有镜像

docker images
docker images

  • REPOSITORY 镜像的仓库源

  • TAG 标签 类似于版本 latest表示最新版本

  • IMAGE ID 镜像ID

  • CREATED 镜像创建时间

  • SIZE 镜像大小

    同一仓库源可以有多个TAG,表示仓库源的不同版本,使用**REPOSITORY :TAG **来定义不同的镜像。

    在拉取镜像或运行镜像时,如果不指定版本标签,将默认使用latest 版本。例如mysql,docker将默认使用mysql:latest镜像

docker images 的可选参数

docker images options

options:

-a列出本地所有的镜像(含中间镜像层)
-q只显示镜像ID
--digests显示镜像的摘要信息
--no-trunc显示完整的IMAGE ID信息

-a -q 可以连用 docker images -qa 显示所有镜像的ID

docker search 镜像名称

使用docker search 会从docker仓库https://hub.docker.com/中搜索镜像

以下搜索mysql示例

docker search mysql
在这里插入图片描述

其中OFFICIAL为**[OK]**表示的是官方镜像

下载镜像

搜索到镜像后就可以下载镜像了,使用命令

docker pull 镜像名称

例如 docker pull mysql 就会下载mysql的docker镜像了,不过版本是latest版本

命令等价于docker pull mysql:latest

docker pull mysql:5.7拉取mysql5.7的镜像
在这里插入图片描述

删除镜像
删除单个镜像

docker rmi 镜像ID 或者docker rmi 镜像名称:TAG

删除刚刚下载的mysql版本,使用命令docker rmi mysql就相当于docker rmi mysql:latest

删除其他版本docker rmi mysql:5.7

删除安装docker下载的helloworld镜像

docker rmi hello-world

在这里插入图片描述

出现错误提示无法删除镜像hello-world,因为有容器使用它。此时我们可以添加选项**-f**强制删除镜像

docker rmi -f hello-world

在这里插入图片描述

删除多个镜像

docker rmi -f 镜像名1:TAG 镜像名2:TAG

例如 删除本地的hello-world镜像和nginx镜像
在这里插入图片描述

删除全部镜像

docker rmi -f $(docker images -qa)

利用之前查询所有镜像的ID,配合rmi命令可以删除全部镜像

3 容器命令

启动一个容器

docker run [OPTIONS] image

image可以是镜像名称+tag,也可以是image ID

OPTIONS 选项,此处只讲解常用选项

--name为容器指定一个名称
-d后台运行容器并返回容器ID,即启动守护式容器
-i以交互模式运行容器,通常与-t同时使用
-t为容器重新分配一个伪输入终端,通常与-i同时使用
-P随机端口映射
-p指定端口映射,有四种格式
ip:hostPort:containerPort

ip::containerPort

hostPort:containerPort #最常用

containerPort

以交互方式进入docker容器

docker run -it centos`
在这里插入图片描述

查看运行的docker进程

docker ps [options]

在这里插入图片描述

  • CONTAINER ID 是镜像运行产生的容器ID
  • IMAGE 是使用的镜像
  • STATUS 容器的状态 UP表示运行
  • PORT 容器映射的端口
  • NAMES 容器的名称 这里容器运行时没有指定–name ,docker自动生成了一个名称
-a列出当前所有正在运行的容器+历史运行过的
-l显示最近创建的容器
-n显示最近几个创建的容器 个数由-n后指定数字
-q静默模式,只显示容器编号
--no-trunc不截断输出

退出容器

两种方式

  • exit 容器停止退出
  • ctrl+P+Q 容器不停止退出

容器启动后会产生容器ID和容器名称,容器名称是–name指定的名称或docker自动创建的名称

启动docker容器

docker start 容器ID或容器名称

重启docker容器

docker restart 容器ID或容器名称

停止docker容器

docker stop 容器ID或容器名称

强制停止docker容器

docker kill 容器ID或容器名称

删除docker容器 加上**-f**参数可以强制删除

docker rm 容器ID或容器名称

一次性删除多个容器

docker rm -f $(docker ps -a -q)

docker ps -a -q | xargs docker rm

查看容器日志

docker logs [OPTIONS] 容器ID

  • -t 显示时间戳
  • -f 跟随最新的日志打印
  • –tail 数字 显示最后多少条

docker logs -t -f --tail 容器ID

查看docker内的进程

docker top 容器ID

查看docker内部细节

docker inspect 容器ID

进入运行的容器并以命令行交互

docker exec -it 容器ID bashShell

docker exec -t f0af994bd42f /bin/bash

重新进入

docker attach 容器ID

区别

  • attach 直接进入容器启动命令的终端,不会启动新的进程
  • exec 在容器中打开新的终端,并且可以启动新的进程

复制文件到主机或容器

从容器内拷贝文件到主机上

docker cp 容器ID:容器路径 本地路径

docker cp f0af994bd42f:/tmp/yum.log ./

从主机上复制文件到容器内

docker cp 本地路径 容器ID:容器路径

docker镜像重命名

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

例如docker tag centos mycentos:7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值