头歌平台-云计算与大数据技术应用-docker容器使用-安装docker;创建和应用docker命令操作容器

 ❤❤风吹向我吧❤❤ 

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

 一、安装docker

1、卸载旧版本

(旧版本被称为docker,docker.io或docker-engine)

$apt-get remove docker docker-engine docker.io containerd runc

在新主机上首次安装 Docker Engine 之前,需要设置 Docker 存储库。之后,可以从存储库安装和更新 Docker。 

2、更新apt

更新apt包索引并安装包以允许apt通过 HTTPS 使用存储库

$apt-get update
$apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release

3、添加Docker官方的GPG密钥和公钥

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7EA0A9C3F273FCD8

4、设置稳定存储库

使用以下命令设置稳定存储库。要添加nightly或test存储库,请在以下命令中的单词后添加单词nightly或test(或两者)stable。

$ add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

5、更新apt包索引

安装最新版本的Docker Engine和containerd

$ apt-get update
$ apt-get install docker-ce docker-ce-cli containerd.io

6、运行并查看docker的状态

$ service docker start
$ service docker status

7、通过运行version 验证 Docker Engine 是否已正确安装

$docker version

二、创建和应用docker命令操作容器

1、启动

任务开始前,请确保容器服务已经启动

sudo service docker start      //查看容器是否启动

(1)创建容器

启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(exited)的容器重新启动。因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。所需要的命令主要为 docker run。

例如,下面的命令输出一个 “Hello World”,之后终止容器。

$ docker run ubuntu:18.04 /bin/echo 'Hello world'
Hello world

当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:

  • 检查本地是否存在指定的镜像,不存在就从 registry 下载
  • 利用镜像创建并启动一个容器
  • 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
  • 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
  • 从地址池配置一个 ip 地址给容器
  • 执行用户指定的应用程序
  • 执行完毕后容器被终止
  • 启动已终止容器

(2)启动已终止容器

可以利用 docker container start 命令,直接将一个已经终止(exited)的容器启动运行。容器的核心为所执行的应用程序,所需要的资源都是应用程序运行所必需的。除此之外,并没有其它的资源。可以在伪终端中利用 pstop 来查看进程信息。

使用ps命令查看进程信息

可见,容器中仅运行了指定的 bash 应用。这种特点使得 Docker 对资源的利用率极高,是货真价实的轻量级虚拟化。更多的时候,需要让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下。此时,可以通过添加 -d 参数来实现。下面举两个例子来说明一下。如果不使用 -d 参数运行容器。

(3)运行容器

不使用 -d 参数运行容器,容器会把输出的结果 (STDOUT) 打印到宿主机上面

docker run ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"

如果使用了 -d 参数运行容器,此时容器会在后台运行并不会把输出的结果 (STDOUT) 打印到宿主机上面(输出结果可以用 docker logs 查看)。

docker run -d ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"

而容器是否会长久运行,是和 docker run 指定的命令有关,和 -d 参数无关。使用 -d 参数启动后会返回一个唯一的 id,也可以通过 docker container ls 命令来查看容器信息。

(4)查看容器信息

$ docker container ls

(5)获取容器的输出信息

docker container logs [container ID or NAMES] #执行时[container ID or NAMES]换成上面的id

当需要终止docker应用时,可以使用 docker container stop 来终止一个运行中的容器。此外,当 Docker 容器中指定的应用终结时,容器也自动终止。例如对于只启动了一个终端的容器,用户通过 exit 命令或 Ctrl+d 来退出终端时,所创建的容器立刻终止。 终止状态的容器可以用 docker container ls -a 命令看到。

(6)终止运行中的容器

终止状态的容器可以用 docker container ls -a 命令看到

处于终止状态的容器,可以通过 docker container start 命令来重新启动。此外,docker container restart 命令会将一个运行态的容器终止,然后再重新启动它。

(7)重新启动容器

(8)docker attach 命令

在使用 -d 参数时,容器启动后会进入后台。某些时候需要进入容器进行操作,包括使用 docker attach 命令或 docker exec 命令。下面示例如何使用 docker attach 命令。

在一个新的容器中以后台模式(detached mode)运行一个Ubuntu镜像。

$ docker run -dit ubuntu

docker container ls

使用attach查看生成的文件

docker attach a328

(9)docker exec命令

另一个docker execattach不同的是,后边可以跟多个参数,这里主要说明 -i -t 参数。只用 -i 参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。当 -i -t 参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符。

docker run -dit ubuntu

docker container ls

docker exec -i d237 bash #d237是上面docker container ls中查看的id

进入命令模式,可以输入ls查看文件情况

如果从这个 stdinexit,不会导致容器的停止。因此更推荐大家使用 docker exec 。更多参数说明请使用 docker exec --help 查看。 在一个容器需要迁移的时,docker提供导出命令,用于将当前运行的容器打包为镜像。

(10)导出容器

如果要导出本地某个容器,可以使用 docker export 命令。

$ docker container ls -a
$ docker export d237 > ubuntu.tar

这样将导出容器快照到本地文件。之后将文件导入新机器时,可以使用 docker import 从容器快照文件中再导入为镜像。

2、删除容器

使用 docker container rm 来删除一个处于终止状态的容器,有一个charming_ganguly的容器终止状态,我们以此为例删除。

docker container rm charming_ganguly

如果要删除一个运行中的容器,可以添加 -f 参数。Docker 会发送 SIGKILL 信号给容器。用 docker container ls -a 命令可以查看所有已经创建的包括终止状态的容器,如果数量太多要一个个删除可能会很麻烦,用下面的命令可以清理掉所有处于终止状态的容器。

docker container prune

3、启动一个允许用户进行交互的 bash 终端

下面的命令则启动一个 bash 终端,允许用户进行交互。

docker run -t -i ubuntu:18.04 /bin/bash

其中,-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开。

在交互模式下,用户可以通过所创建的终端来输入命令,例如

ps > /root/test.txt
cat /root/test.txt

❤❤风吹向我吧❤❤ 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

风吹向我吧~

欢迎投喂!!❤

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

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

打赏作者

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

抵扣说明:

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

余额充值