Docker基础篇之常用命令

1. 帮助启动类命令

启动docker:

systemctl start docker

停止docker:

systemctl stop docker

重启docker:

systemctl restart docker

查看docker 的运行状态:

systemctl status docker

开机启动:

systemctl enable docker

查看docker该要信息:

docker info

在这里插入图片描述
查看docker 帮助文档

docker --help

在这里插入图片描述

查看docker命令帮助文档:

docker 具体命令 --help

在这里插入图片描述

2. 镜像命令

  • docker images [options]:列出本地主机上的所有镜像

在这里插入图片描述

Repository:表示镜像的仓库源
Tag:镜像的标签
Image Id:镜像ID
Created:镜像创建的时间
Size:镜像的大小

同一个仓库源可以有多个Tag版本,代表这个仓库源的不同个版本,我们使用Repository:Tag来定义不同的镜像。
它的options选项说明如下:

-a:列出本地所有的镜像
-q:只显示镜像的ID
  • docker search [options]:远程库中查找某个镜像的名称
    在这里插入图片描述

Name:镜像名称
Description:镜像说明
Stars:点赞数
Official:是否是官方的
Automated:是否是自动构建的

它的options选项说明如下:

--limit:只列出N个镜像,默认是15个
docker search --limit 5 redis
  • docker pull 某个xxx镜像名字:将远程库的某个镜像拉取到本地库中

该命令有两个写法:

docker pull 镜像名称[:TAG] 指定具体版本
docker pull 镜像名称  默认下载最新的
  • docker system df:查看镜像/容器/数据卷所占用的空间

在这里插入图片描述

  • docker rmi 某个xxx镜像的名字ID

删除单个:

docker rmi -f 镜像ID #-f表示强制删除

删除多个:

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

删除全部

docker rmi -f $(docker images -qa)

面试题:谈谈docker虚悬镜像是什么?
答:首先虚悬镜像是仓库名和标签都是<none>的镜像,俗称为虚悬镜像(dangling image)

3. 容器命令

首先要知道,有镜像才能创建容器,所以在创建容器之前本地库需要有对应的镜像。

  • 首先准备ubuntu镜像
docker pull ubuntu

在这里插入图片描述

  • 新建并启动容器
docker run [options] image [command][arg...]

options选项说明:

–name:容器的新名字
-d:后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
-i:以交互模式运行容器,通常和-t同时使用
-t:为容器重新分配一个伪输入终端,通常和-i一起使用(-t -i也即启动交互式容器—前台有终端,等待交互)
-P:随机端口映射
-p:指定端口映射

启动交互式容器
在这里插入图片描述
上面就使用ubuntu以交互模式启动类一个容器,在容器内执行/bin/bash命令

  • 列出正在运行的所有容器
docker ps [options]

在这里插入图片描述

options选项说明:

-a:列出当前所有正在运行的容器+历史运行过的
-i:显示最近创建的容器
-n:显示最近n个创建的容器
-q:静默模式,只显示容器编号

  • 退出容器

容器有两种退出方式:

exit:run进入容器,exit退出,容器停止(容器内部操作)
ctrl+p+q:run进入容器,ctrl+p+q退出,但是容器不停止(容器内部操作)

  • 启动已经停止运行的容器
docker start 容器ID或者容器名

在这里插入图片描述

  • 重启容器
docker restart 容器ID或者容器名
  • 停止容器
docker stop 容器ID或者容器名
  • 强制停止容器
docker kill 容器ID或者容器名
  • 删除已经停止的容器
docker rm 容器ID 
  • 其它重要知识点

有镜像才能创建容器,这里下载一个redis镜像进行演示

启动守护式容器

在大部分场景下,我们希望docker的服务是在后台运行的,我们可以通过-d指定容器的后台运行模式

docker run -d 容器名

注意:我们使用docker run -d ubuntu(对于ubuntu)后,然后使用docker ps -a进行查看,可以发现容器已经退出,这里涉及很重要的一点说明,Docker容器后台运行,就必须有一个前台进程,容器运行的命令如果不是那些一直挂起的命令,就是会自动退出的。这是docker的机制问题,比如你的web容器,以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可,例如service nginx start,但是,这样做nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器后台启动后,会立即自杀,因为他觉得自己没事做。所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行,常用的就是命令行模式,表示我还有交互操作。

而redis这类服务就适合后台运行。

docker run --name testredis -d redis:6.2.14

在这里插入图片描述

查看容器的日志

docker  logs 容器id
docker  logs 4f6d5fb949e88925f72c21f545625645383426854a430a0940e803f53d87d3ce

在这里插入图片描述

查看容器内运行的进程

docker top 容器ID
docker top 4f6d5fb949e88925f72c21f545625645383426854a430a0940e803f53d87d3ce

在这里插入图片描述

查看容器内部细节

docker inspect 容器ID
docker inspect 4f6d5fb949e88925f72c21f545625645383426854a430a0940e803f53d87d3ce

在这里插入图片描述
进入正在运行的容器并以命令行交互

docker exec -it 容器ID bashShell 
docker attach 容器ID

上诉两个命令的区别是,attach是进入容器启动命令的终端,不会启动新的进程,用exit退出会导致容器停止。exec是在容器中打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器的停止。

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

docker  cp 	容器ID:容器内路径 目的主机路径

导入和导出容器(容器的备份和恢复)

export :导入容器的内容留作为一个tar归档文件[对应import命令]
import:从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]

docker export 容器ID>文件名.tar
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号

在这里插入图片描述

4. 总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值