美文网首页程序员
第一本docker书-读书笔记 前三章

第一本docker书-读书笔记 前三章

作者: yellowone | 来源:发表于2020-11-16 08:24 被阅读0次

第一章

  • docker得益于现代Linux内核特性,如控件组(control group),命名空间技术(namespace)技术。让容器和宿主机之间的隔离更加彻底,容器有独立的网络和存储栈,还拥有自己的资源管理能力,使得同一台宿主机中的多个容器可以友好地共存。
  • docker依赖于写时复制模型,使修改应用程序也非常迅速。
  • docker鼓励面向服务的架构和为服务架构。docker推荐单个容器只允许一个应用程序或进程,这样就形成了一个分布式的应用程序模型。

docker的核心组件有:

  1. docker客户端和服务器。
  2. docker镜像。
  3. registry。
  4. docker容器。

1:docker是cs架构的程序,docker客户端向docker服务器(通过网络连接)或守护进程(通过unix套接字连接)发出请求,docker服务器管理容器。

2:镜像是容器的源代码,一个容器是由这些源代码构建出来的,体积很小(就一个文本文件)。

3:regisry是用来保存镜像的仓库,可以使用公共的也可以自己搭建私有的。

4:容器是基于镜像启动的,是一个镜像格式,一系列的标准的操作或者一个执行环境。

利用docker,可以消除本地开发环境,测试环境和生产环境之间的部署障碍。

linux通过namespace,可以实现文件系统,进程,网络隔离,使用cgroups,可以让cpu和内存之类的资源独立分配给每个docker容器。

第二章

这本书第二章是讲怎么安装docker的。书上的内容可能比较老了,就去按照docker的官方文档安装的。

在wsl2的Ubuntu20.04系统中安装docker

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

gpg是一种加密工具,这个语句的作用其实是将公钥添加到apt信任中。这样才能连接到docker的apt仓库里。

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

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

service docker start
service docker status

这里如果看到Docker is running就说明docker服务已经启动啦~

sudo docker run hello-world

运行的时候他会先在本地查找一下有没有镜像,没有的话会去远程仓库拉取。

Unable to find image 'hello-world:latest' locally

latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete                                                                                             Digest: sha256:8c5aeeb6a5f3ba4883347d3747a7249f491766ca1caa47e5da5dfcf6b9b717c0
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

运行输出。

第三章 docker入门

docker info显示docker信息。

docker run

docker run提供了docker容器的创建到启动的功能。

参数

-i 保证容器中的stdin是开启的。

-t告诉docker要为创建的容器分配一个伪tty的终端。

这样,-i -t就能为新创建的容器提供一个交互式的shell。

docker run -i -t ubuntu /bin/bash

通过这样就能生成一个镜像并运行。

上图的主机名发生了变化

这个命令会先检查本地是否存在Ubuntu镜像,没有的话会去官方的registry下载,下载完毕之后利用这个镜像创建一个新容器。最后告诉镜像要执行什么命令,在这个例子中,我们执行了/bin/bash命令,启动了一个Bash shell。

然后你就可以对这个镜像做任何自己想做的事情。比如你可以安装软件,当所有工作都结束时,输入exit,就退出镜像。

当你退出镜像时,就会发现这个镜像已经被关闭了。

image-20201116074540877

而此时你重新

执行docker run -i -t ubuntu /bin/bash,那会重新启动一个镜像,就会发现你之前执行的命令,安装的软件全部没有了。

--name可以为容器命名,利用命名可以更好地区分我们的镜像。

-ddocker会把容器放到后台运行。

可以利用这个创建一个守护容器。

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

root@DESKTOP-3JK8RKR:~# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
60e7fecca197        ubuntu              "/bin/sh -c 'while t…"   52 seconds ago      Up 52 seconds                           daemon_dave

可以看到有个容器正在后台运行。

--restart在容器退出时是否重启容器。

--restart=always总是重启容器,不管退出代码是什么。

--restart=on-failure:5只有退出代码非0时,才重启容器,最多重启5次。

docker start

可以用来启动一个容器。

image-20201116075144721

然后光启动这个容器,是没有进去它的操作界面的。还需要附着到容器上。利用docker attact

image-20201116075407972

可以看到进去了之前的镜像,安装的vim命令还在。

docker log

想看容器打印了什么,我们可以通过docker logs来获取容器的日志。如果用-f参数,还能监控docker的日志。加上-t参数,会打印时间戳。

image-20201116080506217

docker top

想看容器的进程。

image-20201116080538192

docker exec

在容器内部执行命令。

docker exec -d daemon_dave touch /etc/new_config_file

然后我们进去也用exec进去容器里面。

docker exec -t -i daemon_dave /bin/bash

image-20201116081009579

可以看到文件确实被创建了。

docker stop

用stop停止守护进程。

image-20201116081215308

可以看出容器已经被停止了。

docker stop是向容器发送sigterm信号,是比较温和的关闭方法,如果想快速关闭,可以用docker kill。

docker inspect

可以获得容器的详细信息,通过-f可以只看某部分的信息。

docker rm

可以删除容器,但是需要注意的是,运行中的容器是无法删除的。

image-20201116082141404

相关文章

  • 第一本docker书-读书笔记 前三章

    第一章 docker得益于现代Linux内核特性,如控件组(control group),命名空间技术(names...

  • 2018Plan

    2018 docker 第一本docker书 Docker容器与容器云 golang cgo go doc阅读完 ...

  • docker

    以下内容总结自《第一本Docker书》,作者:[澳]James Turnbull mac 下载docker.app...

  • 第一本Docker书

    第一本Docker书 自动精简配置: thin-provisioning加载device-mapper模块sudo...

  • docker-compose 学习笔记

    最近学习《第一本docker书》, 学习完 Docker Compose 这一章节之后打算自己使用它来构建一个使用...

  • { docker } Docker初步使用

    之前看了点《第一本Docker书》,又忘记的差不多了,最近又涉及到了Docker的内容,计划系统的学习下。 Ins...

  • 随文

    第一本书《书都不会读,你还想成功》 读十遍,做好读书笔记。

  • 读《WOOP思维心理学》

    写在前面:作为来京后购买的第一本实体书,有小小纪念意义。 是什么阻碍你实现梦想? 本书前三章通过各种实验探讨了乐观...

  • 《第一本Docker书》

    书籍简介 书名《第一本Docker书》第四版本 出版社:人民邮电出版社 作者:James Turnbull 封面I...

  • 关于英语学习的常见问答

    ———《找对英语学习方法的第一本书》读书笔记 《找对英语学习方法的第一本书》通过介绍外语习得的本质和英语学习方法的...

网友评论

    本文标题:第一本docker书-读书笔记 前三章

    本文链接:https://www.haomeiwen.com/subject/tklabktx.html