0
点赞
收藏
分享

微信扫一扫

【容器~原始真解】Docker —— 容器的使用

莞尔小迷糊 2022-06-06 阅读 40

在这里插入图片描述

🔎这里是【秒懂·云原生】,关注我学习云原生不迷路
👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️

👀专栏介绍

【秒懂·云原生】 目前主要更新微服务和容器,一起学习一起进步。

👀本期介绍

主要介绍Docker —— 容器的使用

文章目录

Docker 客户端

docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项。

[root@iZ8vbjcjn1iba25vym4djtZ ~]# docker

在这里插入图片描述

可以通过命令 docker command --help 更深入的了解指定的 Docker 命令使用方法。

例如我们要查看 docker stats 指令的具体使用方法:

[root@iZ8vbjcjn1iba25vym4djtZ ~]# docker stats --help

在这里插入图片描述

容器使用

获取镜像

如果我们本地没有 ubuntu 镜像,我们可以使用 docker pull 命令来载入 ubuntu 镜像:

[root@iZ8vbjcjn1iba25vym4djtZ ~]# docker pull ubuntu

启动容器

以下命令使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器:

[root@iZ8vbjcjn1iba25vym4djtZ ~]$ docker run -it ubuntu /bin/bash

参数说明:

  • -i: 交互式操作。
  • -t: 终端。
  • ubuntu: ubuntu 镜像。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

要退出终端,直接输入 exit:

[root@iZ8vbjcjn1iba25vym4djtZ ~]# exit

启动已停止运行的容器

查看所有的容器命令如下:

[root@iZ8vbjcjn1iba25vym4djtZ ~]# docker ps -a

在这里插入图片描述

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

[root@iZ8vbjcjn1iba25vym4djtZ ~]$ docker start b750bbbcfd88 

后台运行

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

[root@iZ8vbjcjn1iba25vym4djtZ ~]$ docker run -itd --name ubuntu-test ubuntu /bin/bash

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

停止一个容器

停止容器的命令如下:

[root@iZ8vbjcjn1iba25vym4djtZ ~]$ docker stop <容器 ID>

进入容器

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

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

attach 命令

下面演示了使用 docker attach 命令。
进入容器,退出容器

[root@iZ8vbjcjn1iba25vym4djtZ ~]$ docker attach 015f67ae27f9

在这里插入图片描述
查看容器,没有redis了
在这里插入图片描述
exec 命令
下面演示了使用 docker exec 命令。

[root@iZ8vbjcjn1iba25vym4djtZ ~]$ docker exec -it 015f67ae27f9 /bin/bash

在这里插入图片描述
注意: 如果从这个容器退出,容器不会停止,这就是为什么推荐大家使用 docker exec 的原因。

更多参数说明请使用 docker exec --help 命令查看。

导出和导入容器

导出容器
如果要导出本地某个容器,可以使用 docker export 命令。
在这里插入图片描述
导出容器 015f67ae27f9 快照到本地文件 redis.tar。
导入容器快照
可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 redis.tar 导入到镜像 test/redis:v1:

[root@iZ8vbjcjn1iba25vym4djtZ ~]$ cat docker/redis.tar | docker import - test/redis:v1

删除容器

删除容器使用 docker rm 命令:

[root@iZ8vbjcjn1iba25vym4djtZ ~]# docker rm 015f67ae27f9

在这里插入图片描述

删除所有未运行的容器

[root@iZ8vbjcjn1iba25vym4djtZ ~]# docker rm $(docker ps -a -q)

在这里插入图片描述
查看一下所有容器,未运行的已经全部删除了
在这里插入图片描述

运行一个 web 应用

前面我们运行的容器并没有一些什么特别的用处。

接下来让我们尝试使用 docker 构建一个 web 应用程序。

我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。

[root@iZ8vbjcjn1iba25vym4djtZ ~]# docker pull training/webapp

在这里插入图片描述

[root@iZ8vbjcjn1iba25vym4djtZ ~]# docker run -d -P training/webapp python app.py

在这里插入图片描述
参数说明:

  • -d:让容器在后台运行。
  • -P:将容器内部使用的网络端口随机映射到我们使用的主机上。

查看 WEB 应用容器

使用 docker ps 来查看我们正在运行的容器:
在这里插入图片描述
这里多了端口信息。
在这里插入图片描述
Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 49153 上。

这时我们可以通过浏览器访问WEB应用
在这里插入图片描述
我们也可以通过 -p 参数来设置不一样的端口:

[root@iZ8vbjcjn1iba25vym4djtZ ~]# docker run -d -p 5000:5000 training/webapp python app.py
举报

相关推荐

0 条评论