Docker 镜像和容器

搜索镜像

 

docker search 镜像名

例如: 搜索centos相关的镜像

docker search centos

  • NAME: 镜像仓库源的名称

  • DESCRIPTION: 镜像的描述

  • OFFICIAL: 是否 docker 官方发布

  • stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。

  • AUTOMATED: 自动构建。

拉取镜像

拉取镜像到本地服务器,默认TAG是laster即最新版本

docker pull 镜像名

例如: 拉取redis:latest

docker pull redis:latest

默认最新的laster

查看所有的镜像

docker images

各个选项说明:

  • REPOSITORY:表示镜像的仓库源

  • TAG:镜像的标签

  • IMAGE ID:镜像ID

  • CREATED:镜像创建时间

  • SIZE:镜像大小

查看中间层镜像:

docker images -a

如果不同镜像之间有复用的中间层,这里就会看见一些没有镜像名和标签的镜像,很多镜像依赖这些中间层,所以中间层镜像是不能随意删除的。

删除镜像

当我们想删除一些不需要的镜像时,比如hello-world镜像,可以执行:

docker rmi hello-world

强制删除镜像

如果此时有基于此镜像的容器,则需要先删除相应的容器才能删除此镜像,如果想强制删除镜像,加上-f参数即可:

docker rmi -f <image name>

清除所有虚悬镜像

在使用docker images查看本地镜像时(不加-a参数时),我们也可能会发现一些没有镜像名和标签的镜像:

不同于上面提到的中间层镜像,我们称这种镜像为虚悬镜像(dangling image),有几种情况会产生虚悬镜像,比如上述强制删除一个已经运行容器的镜像,或者使用docker pull命令更新镜像时,镜像的名称和标签会转移到新镜像中,旧的镜像就会变成虚悬镜像,另外,在使用docker build构建镜像的时候,如果构建失败也会产生虚悬镜像。一般来说虚悬镜像已经没有实际用处,可以随意删除,一条命令就能清除所有虚悬镜像:

docker image prune

导出镜像

我们用docker pull命令将镜像从Docker Hub下载到本地,如果目标环境不能访问外网时无法下载,我们就可以直接导出镜像文件:

docker save -o centos_demo.tar centos
  • -o参数后面接着输出文件名。

  • centos是需要导出的镜像名。

导入镜像

然后拷贝此镜像文件到目标环境中,并导入镜像:

docker load -i centos_demo.tar

导入后可以即可通过docker images查看镜像。

修改镜像名称及标签

如果我们想把镜像名称改为redis.1,则执行:

docker tag redis:latest redis.1

大家可能看到怎么是两个了因为同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如 redis 仓库源里,有 laster、1.0 等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。

二. 容器操作

启动容器

docker run -it redis

参数说明:

  • -i: 交互式操作。

  • -t: 终端。

  • centos: centos 镜像。

查看容器

执行以下命令可以查看所有容器及其状态:

docker ps -a

代表容器运行情况,什么时候创建的,已经运行多久和停止多久了

启动已停止运行的容器

在上图中发现centos已经停止的了

启动容器

使用 docker start 启动一个已停止的容器:

docker start 9e00da244f59

后台运行

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

图片

file

注:加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec(下面会介绍到)。

2.5 停止一个容器

停止容器的命令 docker stop <容器 ID>  如下: 

docker stop 9e00da244f59

停止的容器可以通过 docker restart <容器 ID> 重启 如下:

docker restart 9e00da244f59

进入容器

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

  • docker attach

  • docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

删除容器

删除容器使用 docker rm 命令:

docker rm 9e00da244f59

不能删除一个正在运行的容器

强制删除容器

docker rm -f 9e00da244f59

清理掉所有处于终止状态的容器

docker container prune

模拟实战运行web应用

运行一个 web 应用

前面我们运行的容器并没有一些什么特别的用处。接下来让我们尝试使用 docker 构建一个 web 应用程序。我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。

载入web镜像

docker pull training/webapp

后台启动容器

docker run -d -P training/webapp python app.py

参数说明:

  • -d:让容器在后台运行

  • -P:将容器内部使用的网络端口映射到我们使用的宿主机上

查看WEB容器

docker ps

服务器开放32768端口

如果在云服务器安全组需要开放端口和防火墙放行    再通过浏览器访问WEB应用:

参数设置端口

也可以通过 -p 参数来设置不一样的端口:

docker run -d -p 5000:5000 training/webapp python app.py

查看WEB应用程序日志

docker logs [ID或者名字] 可以查看容器内部的标准输出:

docker logs e018dabe79b791f8f91388c52930f0c1a09b619b485582dfd9eab3878814e56e

docker logs e018dabe79b7

命令介绍

docker logs命令可以查看容器的日志

命令格式

$ docker logs [OPTIONS] CONTAINER  Options:        --details        显示更多的信息    -f, --follow         跟踪实时日志        --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)        --tail string    从日志末尾显示多少行日志, 默认是all    -t, --timestamps     显示时间戳        --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

跟踪实时日志

docker logs -f e018dabe79b7

查看最近30分钟的日志:

docker logs --since 30m e018dabe79b7

查看某时间之后的日志:

docker logs -t --since="2020-03-08T13:23:37" e018dabe79b7

查看WEB应用程序容器的进程

docker top 来查看容器内部运行的进程:

docker top e018dabe79b7

检查WEB应用程序

使用 docker inspect 来查看Docker的底层信息,返回一个 JSON 文件记录着 Docker 容器的配置和状态信息:

docker inspect e018dabe79b7

停止WEB应用容器

docker stop e018dabe79b7

重启WEB应用容器

已经停止的容器,我们可以使用命令 docker start 来启动

docker start e018dabe79b7

查询最后一次创建的容器

docker ps -l 查询最后一次创建的容器:

docker ps -l

正在运行的容器,我们可以使用docker restart命令来重启。

移除WEB应用容器

使用 docker rm 命令来删除不需要的容器(删除容器时,容器必须是停止状态)

docker rm e76c997069bf

移除正在运行的容器可以强制移除    docker rm -f

docker rm -f e76c997069bf

参考资料


http://iii30.cn/Ig8w9u

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网寻星

打赏老板,留下需求,为你而码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值