Docker技术入门与实战笔记(三)

本文是我在学习《Docker技术入门与实战》第3版(杨保华 戴王剑 曹亚仑编著)时所做的笔记,有许多描述不清楚的地方,建议自行购买学习。

Docker容器
容器是镜像的一个运行实例。镜像与容器的不同点时,镜像是静态的只读文件,而容器带有运行时需要的可写文件层,同时容器的应用进程处于运行状态。
如果认为虚拟机是模拟运行的一整套操作系统(包括内核、应用运行态环境和其他操作系统)和跑在上面的应用。那么Docker容器就是独立运行的一个(或一组)应用,以及他们必需的运行环境。

学习本章之前,先将之前的容器清除掉,之前的容器太多了。
一、先执行:

docker –help

看下使用说明,有兴趣的话可以仔细阅读尝试下,下图只是截取其中两部分
在这里插入图片描述能看出来子命令container是作容器管理的。
在这里插入图片描述ps子命令是展示容器的。

二、查看容器操作相关信息,又是一个超长的说明,继续截取一部分。
继续执行:

docker container –help

在这里插入图片描述子命令prune是说移除所有的停止的容器;

查看docker ps文档
在这里插入图片描述-a子命令:展示所有的容器,默认只展示运行中的。

三、先查看当前所有容器,然后执行删除所有停止的容器,然后重新再查看剩余容器。
执行命令

docker ps -a

在这里插入图片描述
删除所有停止的容器,然后在查看剩余容器:

docker container prune
docker ps -a

在这里插入图片描述
需注意的是ps是docker的子命令,prune是docker container的子命令。
继续整理笔记。

创建容器
可以使用docker [container] create命令新建容器(上边的文档信息也记录的有,docker的子命令create和docker container的子命令create的描述是一样的,都是Create a new container,因此container可要可不要),执行命令:

docker create -it ubuntu:latest
docker ps -a

在这里插入图片描述可以看到刚创建的容器状态是Created,未开始运行。记住容器id 01d17e1b1048d8

启动容器
使用docker [container] start命令来启动容器,执行命令

docker start 01d17e1b1048d8

在这里插入图片描述
新建并启动容器
使用命令docker [container] run。执行命令:

docker run ubuntu /bin/echo ‘hello world’

在这里插入图片描述
当利用docker [container] run来创建并启动容器时,Docker在后台运行的标准操作包括:
1、检查本地是否存在指定镜像,不存在就从公有仓库下载;
2、利用镜像创建一个容器,并启动该容器;
3、分配一个文件系统给容器,并在只读的镜像层外面挂载一层可读写层;
4、从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去;
5、从网桥的地址池配置一个IP地址给容器;
6、执行用户指定的应用程序;
7、执行完毕后容器被自动终止。

守护态运行
更多的时候,需要让Docker容器在后台以守护态(Daemonized)形式运行。执行命令:

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

然后可以使用命令docker ps 来查看运行中的容器。
在这里插入图片描述记下容器id:4b3b17f8467c

查看容器输出
命令docker [container] logs
执行:

docker logs 4b3b17f8467c

暂停容器
命令 docker [container] pause
执行命令:

docker pause 4b3b17f8467c

然后执行docker ps 查看运行状态

处于paused状态的容器可以使用docker [container] unpause 来解除暂停状态
执行命令:

docker unpause 4b3b17f8467c

然后执行docker ps 查看运行状态
在这里插入图片描述
终止容器
可以使用docker [container] stop来终止一个容器,执行命令:

docker stop 4b3b17f8467c

然后执行

docker ps -a | grep  4b3b17f8467c

查看运行状态
处于终止状态的容器可以通过docker [container] start命令来重新启动,执行命令:

docker start 4b3b17f8467c

然后执行docker ps 查看运行状态
在这里插入图片描述docker [container] restart命令会将一个运行态的容器先终止,然后重新启动。

进入容器
attach是Docker自带的命令,命令格式:docker [container] attach,执行命令:

docker attach 4b3b17f8467c

在这里插入图片描述
然而使用attach命令并不方便。当多个窗口同时attach到同一个容器的时候,所有窗口同步显示;当某个窗口因命令阻塞时,其他窗口也无法执行操作了,就像上述容器,由于容器本就被无限循环占用了,那么attach访问时仍然是执行无限循环的窗口,此时如果退出的话,容器将因为命令结束而终止。

从Docker的1.3.0版本起,Docker提供了一个更加方便的工具exec命令,可以在运行中的容器内直接执行任意命令。命令格式:docker [container] exec,此命令是start命令抛去启动容器部分,直接在启动中的容器中执行命令。重新启动容器后执行命令:

docker exec -it 4b3b17f8467c /bin/bash

在这里插入图片描述
删除容器
可以使用命令docker [container] rm命令来删除处于终止或推出状态的容器。执行命令:

docker rm 4b3b17f8467c

会提示错误,不能删除运行中的容器。使用命令看看docker rm的子命令介绍,然后添加强制删除的子命令,执行命令

docker rm -f 4b3b17f8467c

在这里插入图片描述
导出容器
导出容器是指导出一个已经创建的容器到一个文件,不管此时这个容器是否处于运行状态。命令格式:docker [container] export [-o 文件名] CONTAINER
继续启动一个my-git,执行命令:

docker export -o mygit.tar a5139800cba0

docker export a5139800cba0 >my-git.tar

在这里插入图片描述
导入容器
导出的文件可以使用docker [container] import命令导入变成镜像,执行命令:

docker import mygit.tar mycontainer/my-git:1.0.0

在这里插入图片描述
测试镜像
在这里插入图片描述

查看容器
查看容器详情,命令格式:docker container inspect
查看容器进程,命令格式:docker [container] top
查看统计信息,命令格式:docker [container] stats
重新启动个守护态ubuntu容器,容器id是7b4ad1ca0cc7
执行命令:

docker container inspect 7b4ad1ca0cc7 
docker top 7b4ad1ca0cc7
docker stats 7b4ad1ca0cc7

在这里插入图片描述
查看容器的具体信息,会以json格式返回包括容器id、创建时间、路径、状态、镜像、配置等信息。
在这里插入图片描述查看容器内进程,会打印包括PID、用户、时间、命令等。
在这里插入图片描述
查看统计信息,会显示CPU、内存、存储、网络等使用情况的统计信息。

其他容器命令
复制文件:docker [container] cp 路径 容器:路径,命令:

docker cp my-git.tar  7b4ad1ca0cc7:/tmp/.

在这里插入图片描述
查看变更:docker [container] diff CONTAINER,命令:

docker diff 7b4ad1ca0cc7

在这里插入图片描述
查看端口映射:docker container port CONTAINER,命令:

docker container port 7b4ad1ca0cc7

因为启动时没有配置端口映射,所以没有端口信息。重新启动一个配置端口号,命令:

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

在这里插入图片描述更新配置
docker [container] update命令可以更新容器的一些运行时配置,主要是一些资源限制份额。
例如,限制总配额为1秒,容器所占用时间为10%,命令如下

docker update –cpu-quota 1000000 7b4ad1ca0cc7
docker update –cpu-period 100000 7b4ad1ca0cc7

具体可以修改哪些配置看

docker update --help
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值