Docker与微服务实战(二)

十三、Docker常用命令

1.帮助启动类命令

启动docker:
systemctl start docker

停止docke:
systemctl stop docker

重启docker:
systemctl restart docker
查看docker状态:
systemctl status docker

未开启的状态(inactive)

开启的状态[active (running)]

开机启动:
systemctl enable docker
查看docker概要信息:
docker info

查看docker总体帮助文档:
docker --help

查看docker命令帮助文档:
docker 具体命令 --help

2.镜像命令

步骤:

  1. 先查看自己本地的镜像
  2. 然后在网站找到自己需要的镜像
  3. 拉取这个镜像/拉取到这个镜像的具体版本
  4. 查看镜像/容器/数据卷所占的空间
  5. 删除镜像
docker images
列出本地主机上的镜像

(1)首先查看一下docker的状态

(2)如果的关闭请先开启在进行操作

(3)列出本地主机上的镜像

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

如果你不指定一个镜像的版本标签,例如你只使用 ubuntu, docker 将默认使用 ubuntu:latest 镜像

OPTIONS说明

(了解)

docker search 某个xxx镜像名字

//在官网查看自己需要的镜像

解释

这些查看的镜像来自网站

https://hub.docker.com

命令
docker search [OPTIONS] 镜像名字

OPTIONS说明

docker pull 某个xxx镜像名字

//下载镜像/拉取镜像

docker pull 镜像名字 [:TAG]

(1)刚刚查看过官方有hello-world镜像现在拉取到本地去
docker pull hello-world

稍等

(2)拉取一下固定版本的
docker pull redis:6.0.8

查看一下本地镜像,下载成功

  1. 命令:docker images -a,这个命令是列出本地所有的镜像(含中间镜像层)
  2. 命令:docker images -q,这个命令是只显示镜像ID

  1. 组合在一起qa/aq

docker system df

//查看镜像/容器/数据卷所占的空间

docker system df

docker rmi 某个xxx镜像名字ID

//删除镜像

(1)普通删除
docker rmi feb5d9fea6a5

先查看

删除成功

(2)强制删除镜像

普通删除不管用

强制删除

docker rmi -f  d2c94e258dcb

删除成功

(3)删除多个
docker rmi -f 镜像名1:TAG 镜像名2:TAG

(4)删除全部

ps:在公司里不要这样干

docker rmi -f $(docker images -qa)

删除成功

面试题:

谈谈docker虚悬镜像是什么?

是什么

仓库名、标签都是<none>的镜像,俗称虚悬镜像dangling image

长什么样子

3.容器命令

前提说明

ps:笔记本上安装了win10的操作系统,使用vm(虚拟机)在从上面安装centos7的操作系统,从这个虚拟机内核安装Docker,再从Docker内模拟容器实例

步骤:

先启动docker在docker内新装一个容器(ubuntu/centos)

然后启动这个内置容器

查看当前在运行的容器

新建容器

(1)先启动docker

systemctl start docker

(2)拉取ubuntu镜像或者拉取centos镜像

//推存使用ubuntu镜像,因为内存占用比较少

docker pull ubuntu/centos

查看一下是否安装成功

docker images

启动容器
举例

//我们学习这个命令的简单模式

通过查看我看到我镜像内并没有hello-world,然后我使用命令

docker run hello-world

命令在docker本地内寻找镜像,但是没有,所以到官网下载下来进行执行,最后成功运行hello-world

交互模式运行容器解析

命令

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
启动交互式容器

使用ubuntu以交互模式启动另一个容器,在容器内执行/bin/bash命令

docker run -it ubuntu /bin/bash

ps:@xxxxxxxxx是ubuntu的容器ID

列出当前所有正在运行的容器

//再弄个终端写,上面那个别关

命令

罗列正在运行的容器
docker ps

再新建一个查看一下
docker run -it --name=myu1 ubuntu bash

罗列历史上运行过的容器
docker ps -a

罗列最近运行的容器
docker ps -l

罗列最近新建的n个容器(n是自己需要的)
docker ps -n 1

//只显示了1个

//显示2个

退出容器
exit

run进去容器,exit退出,容器停止

ctrl+p+q

run进去容器,ctrl+p+q退出,容器不停止

启动已停止运行的容器

先查看自己最近新建的容器

docker ps -n 2

docker start 容器ID


运行停止的回来了

重启容器
dockers restart 容器ID或者容器名
停止容器
docker stop 容器ID或者容器名
强制停止容器
docker kill 容器ID或者容器名
删除已停止的容器
正常删除

不可以删除启动中的容器

先停止

docker stop a17a068c9493

再删除查看

docker rm a17a068c9493

删除成功

强制删除
docker rm -f myu1

强制删除成功

一次性删除多容器

重要

有镜像才能创建容器,这是根本前提(下载一个Redis镜像演示)
开启docker
systemctl start docker
下载镜像redis
docker pull redis

查看一下
docker images

启动守护式容器

在大部分的场景下,我们希望 docker 的服务是在后台运行的,

我们可以过-d 指定容器的后台运行模式

注意这样是不行的
docker run -d 容器名

这个命令装不上去

所以一定需要先使用这个前台运行一下,再退出

docker run -it ubuntu

前台交互式启动

//不推存经常被人莫名其妙关闭

命令

docker run -it redis

启动成功

//不小心按住ctrl+c就容易退出

直接被关闭,所以要使用后台守护式启动

后台守护式启动
docker run -d redis

查看容器日志
docker logs 容器ID

列出容器的进程
docker top 容器ID
查看容器内部细节
docker inspect 容器ID

进入正在运行的容器并以命令行交互
启动容器后退出,再重新进入的方式
命令1

//使用这个命令,exit退出后,不会使其停止进程

docker exec -it 容器ID bashShell
步骤

(1)先创建并启动容器

docker run -it ubuntu /bin/bash

ctrl+p+q直接退出(这个命令不会让其停止)

(2)并重新进入到容器内

//使用这个命令,exit退出后,不会使其停止进程

docker exec -it 刚刚的容器ID /bin/bash

命令2

//使用这个命令进入,exit退出后,会使其停止进程

docker attach 容器ID

退出既停止

所以我们一般为了方便会使用第一种

用之前的redis实例试一下
步骤

(1)查看redis的ID

docker ps

(2)进入redis服务

docker exec -it redis的命令 /bin/bash

(3)启动redis客户端,干活

redis-cli -p 6379

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

//如果我们在exec进入容器内干活时,别人误将我们的容器删除,则我们已经退出容器了,现在我们需要将容器内的文件copy到主机上

步骤

我在ubuntu容器内,进去了tmp目录,然后在内新建了一个文件a.txt,退出

(1)进入容器
docker exec -it 容器ID /bin/bash

创建文件

退出

(2)复制到主机上
docker cp 容器ID:容器内路径 目的主机路径

复制(将ubuntu容器tmp目录下的a.txt,复制到主机tmp目录下)

查看

导入和导出容器

export 导出容器的内容留作为一个tar归档文件[对应import命令]

import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]

步骤
(1)把ubuntu这个容器导出到主机并打包
docker export 容器ID>文件名.tar

此时删除整个ubuntu容器试试看吧

docker rm -f 容器ID

删除成功

(2)从tar包中的内容创建一个新的文件系统再导入为镜像“复活”
cat 文件名.tar | docker import-镜像用户/镜像名:镜像版本号
cat abcd.tar | docker import - atWYN/ubuntu:3.7

查看镜像

docker images

运行这个刚导出来的镜像

docker run -it 容器ID /bin/bash

发现文件都还在

4.总结

图解

常用命令
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   # 截取容器停止时的退出状态值
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值