当前位置:网站首页 > R语言数据分析 > 正文

dockerd启动(dockerd启动 参数)



1.1 虚拟机

虚拟可以解决环境配置方面的一些麻烦,但是虚拟机也有很多的缺点:

  • 资源占用多:虚拟机会单独占用一部分内存和硬盘空间,其他程序不能够使用这些资源,即使虚拟机里的应用程序使用的内存只有1MB,虚拟机依然需要几百MB内存才能运行
  • 冗余步骤多
  • 启动慢

1.2 Linux容器:

由于虚拟机存在这些缺点,Linux 发展出了另一种虚拟化技术:Linux 容器(Linux Containers,缩写为 LXC)。

。或者说,在正常进程的外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。

由于容器是进程级别的,相比虚拟机有很多优势。

  • 启动快
  • 资源占用少
  • 体积小:容器只要包含用到的组件即可,而虚拟机是整个操作系统的打包,所以容器文件比虚拟机文件要小很多。

总之,有点像,能够提供,但是。

1.3 Docker 是什么?

属于 的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。

Docker 将与,。运行这个文件,就会生成一个。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。还可以进行、、、,就像管理普通的代码一样。

1.4 Docker 的用途

Docker 的主要用途,目前有三大类。

(1)。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。

(2)。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。

(3)。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

2.1 docker在不同系统中的安装

  • Mac
  • Windows
  • Ubuntu
  • Debian
  • CentOS
  • Fedora
  • 其他 Linux 发行版

2.2 验证docker是否安装成功的命令

2.3 把docker添加到用户组中

需要用户具有,为了避免每次使用docker命令都输入sudo,可以把用户加入 Docker 用户组(官方文档)

2.4 启动docker

Docker 是服务器----客户端架构。命令行运行docker命令的时候,需要本机有 Docker 服务。如果这项服务没有启动,可以用下面的命令启动(官方文档)。

  • service 命令的用法

  • systemctl 命令的用法

1、Docker的镜像文件

把及其,里面。只有,才能。。Docker 根据 生成。同一个 image 文件,可以生成多个同时运行的容器实例。

。实际开发中,一个 image 文件往往通过,加上一些个性化设置而生成。举例来说,你可以在 Ubuntu 的 image 基础上,往里面加入 Apache 服务器,形成你的 image。

创建的叫,因此,可以生成,容器可以删除,并不会把镜像删除!

2、列出本机的所有镜像文件



3、删除 image 文件

是,一台机器的 image 文件拷贝到另一台机器,照样可以使用。一般来说,为了节省时间,我们应该尽量,而不是自己制作。即使要定制,也应该,而不是从零开始制作。

为了方便共享,image 文件制作完成后,可以上传到网上的仓库。Docker 的官方仓库Docker Hub 是最重要、最常用的 image 仓库。此外,出售自己制作的 image 文件也是可以的。

4.1 查看和删除本地已经有的镜像

1、查看本机当前有哪些镜像:

 

由于,我们要演示镜像,我们先删除它

2、删除镜像

如下,我们删除hello-world镜像

 

4.2 删除镜像的时候报错:Error response from daemon: conflict: unable to remove repository reference

删除的时候报错了,我们看到说镜像,依赖容器,因此,如果要删除镜像需要先删除这个依赖的容器

1、删除镜像依赖的容器

 

依赖的容器可能不只一个,如果有多个,用同样的方法删除!

2、之后再删除指定名子的image镜像,即可:

也可以指定镜像的版本号:

3、具体删除过程如下

 

4、再次查看,此时hello-world镜像已经被删除

 

参考:

4.3 列出所有的容器

1、 列出所有运行或没有运行的容器 docker ps -a

 

2、停止所有的容器

,停止所有的容器:

 

3、删除所有的容器

如果想要删除所有container的话再加一个指令 ,狠心把容器都删除掉了,因为光停止还是不能删除镜像。

4、删除对应的image 镜像

相关容器关闭后,删除对应的images,通过image的id来指定删除谁

或 `docker image rm [imageName]

要删除全部image的话

4.4 把docker的镜像源换成国内镜像源

由于,下面用到的会到官网下载,但是速度比较慢,因此我们可以通过把,提高镜像下载的速度!

我在Ubuntu18.04配置docker国内镜像源如下(参考):

1、创建一个文件,我的该目录下没有文件:

sudo vim /etc/docker/daemon.json

2、添加如下内容:

 

3、重启docker服务

4、使用下面的命令查看是否生效

5、输出如下信息,则表示配置成功,再次docker pull速度就会很快了!

 

4.5 实例:hello-world镜像

下面,我们通过最简单的 image 文件"hello world",感受一下 Docker。

1、将的 image 文件。

 

上面代码中,是抓取 image 文件的命令。是在,其中是 ,是 。

由于 Docker 官方提供的 image 文件,都放在library组里面,所以它的是默认组,。因此,上面的命令可以写成下面这样。

2、先查看一下当前有没有运行的container容器:



列出当前运行的容器:

 

3、从hello-world镜像生成一个容器,并运行它

运行hello-world镜像文件,其实就是从这个image生成一个container容器实例:

命令会从,生成一个。

注意,命令具有的功能。如果发现本地没有指定的 image 文件,就会从仓库自动抓取。因此,前面的docker image pull命令并不是必需的步骤。

如果运行成功,输出如下信息:

 

输出这段提示以后,就会,。因此我们查看的哪些正在运行的容器时,hello-world生成的容器已经终止!

4、如果想要列出所有的容器,包括已经终止的容器:

 

有些容器不会自动终止,因为提供的是服务。比如,安装运行 Ubuntu 的 image,就可以在命令行体验 Ubuntu 系统。

对于那些不会自动终止的容器,必须使用docker container kill 命令手动终止。

生成的,,称为。也就是说,一旦容器生成,就会同时存在两个文件:和。而且,。

1、列出本机正在运行的容器

2、列出本机所有容器,包括终止运行的容器

上面命令的输出结果之中,包括容器的 ID。很多地方都需要提供这个 ID,比如上一节终止容器运行的docker container kill命令。

3、删除容器文件

终止运行的容器文件,依然会占据硬盘空间,可以使用docker container rm命令删除。

 

学会以后,接下来的问题就是,如果你要推广自己的软件,势必要自己制作 image 文件。

这就需要用到 。它是一个,用来。Docker 根据 该文件。

下面通过一个实例,演示如何编写 Dockerfile 文件。

7.1 准备工作

7.1.1 克隆代码

下面我以 koa-demos 项目为例,介绍怎么写 Dockerfile 文件,实现让用户在 Docker 容器里面运行 Koa 框架。

作为准备工作,请先下载源码。

 
7.1.2 安装npm工具

由于下面编写的中会用到,因此我们需要先安装一下:

在build建立之前,需要先安装npm:

1、在Ubuntu18.04上安装npm参考:https://blog.csdn.net/wangtaoking1/article/details/

 

先修正上面的错误:

2、安装好npm之后,做好准备工作:

 

7.2 编写Dockerfile文件

1、首先,在项目的根目录下,新建一个文本文件,写入下面的内容。

 

上面代码表示,这三个路径要排除,。如果你没有路径要排除,这个文件可以不新建。

2、然后,在项目的根目录下,新建一个文本文件,写入下面的内容。

 

上面代码一共五行,含义如下。

  • :该 image 文件继承官方的 node image,冒号表示标签,这里标签是8.4,即8.4版本的 node。
  • :将当前目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入 image 文件的/app目录。
  • :指定接下来的工作路径为/app。
  • :在/app目录下,运行npm install命令安装依赖。注意,安装后所有的依赖,都将打包进入 image 文件。
  • :将容器 3000 端口暴露出来, 允许外部连接这个端口。

7.3 创建 image 文件

有了 Dockerfile 文件以后,就可以使用命令了。

 

上面代码中,参数用来指定的,后面还可以用冒号指定标签。如果不指定,就是。最后的表示 ,上例是当前路径,所以是一个点。

如果运行成功,就可以看到新生成的 image 文件koa-demo了。

 

可以看出,,就是执行我们编写的文件中内容的步骤!

docker image ls

 

7.4 生成容器

1、命令会从 生成容器。

 

上面命令的各个参数含义如下:

  • :的 映射到的 。
  • :映射到,然后你在本机窗口输入的命令,就会传入容器。
  • :image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。
  • :。这里是启动 Bash,保证用户可以使用 Shell。
    如果一切正常,运行上面的命令以后,就会返回一个命令行提示符。

运行结果如下:

 

这表示你了,返回的提示符就是,是容器的。

2、此时启动的容器,就相当于是一个微核的linux:

 

3、此时你再打开一个终端,就可以查看到正在运行的容器:

 

4、执行下面的命令。

 

这时,Koa 框架已经运行起来了。打开本机的浏览器,访问 http://127.0.0.1:8000,网页显示"Not Found",这是因为这个 demo 没有写路由。

在这里插入图片描述

你也可以运行其他的js文件,如下是运行:,在浏览器中打开的结果:

在这里插入图片描述

这个例子中,运行在,进程接触到的和都是,与本机的文件系统和网络接口是隔离的,因此需要定义与的。因为已经将容器的端口3000映射到本机的8000端口,因此只要容器运行,就可以通过本机的8000端口访问到容器的3000端口,从而访问容器的服务!

现在,在容器的命令行,按下 停止 Node 进程,然后按下(或者输入)。此外,也可以用终止容器运行。

在本机的另一个终端窗口,查出容器的 ID

停止指定的容器运行

容器停止运行之后,并不会消失,用下面的命令删除容器文件。

删除指定的容器文件
$ docker container rm [containerID]
也可以使用docker container run命令的–rm参数,在容器终止运行后自动删除容器文件。

$ docker container run --rm -p 8000:3000 -it koa-demo /bin/bash

7.5 CMD 命令

上一节的例子里面,容器启动以后,需要。我们可以把这个命令写在 里面,这样容器启动以后,这个命令就已经执行了,不用再手动输入了。

 

上面的 Dockerfile 里面,多了最后一行,它表示容器启动后自动执行node demos/01.js。

你可能会问,RUN命令与CMD命令的区别在哪里?简单说,在,执行结果都会打包进入 image 文件;则是。另外,可以包含,但是。

指定了CMD命令以后,docker container run命令就不能附加命令了(比如前面的/bin/bash),否则它会覆盖CMD命令。现在,启动容器可以使用下面的命令。

7.6 发布 image 文件

容器运行成功后,就确认了 image 文件的有效性。这时,我们就可以考虑把 image 文件分享到网上,让其他人使用。

1、首先,去或 注册一个账户。然后,用下面的命令。

2、接着,为本地的 image 标注用户名和版本。

也可以不标注用户名,重新构建一下 image 文件。

3 、最后,发布 image 文件。

发布成功以后,登录 ,就可以看到。

1、

命令是,每运行一次,就会新建一个容器。同样的命令运行两次,就会生成两个一模一样的容器文件。如果希望,就要使用命令,它用来启动已经生成、已经停止运行的容器文件。

 

3、

命令用于的 。

 

在本机上重开启一个终端,进入一个正在运行容器的bash,这种就是使用的时候没有使用参数的时候,进入正在运行容器的bash!

4、

命令用于从正在运行的 里面,将。

先查看容器中有哪些文件:

 

把容器中的文件或目录拷贝到本机系统中:

 

5、把本地拷贝到容器中(参考)

先查目录文件大小:

 

拷贝命令:

成功拷贝可以发现磁盘空间也变小了,此时的容器

在这里插入图片描述

可以在容器中查看到文件已经被从本地拷贝到容器中:

在这里插入图片描述

6、把本地的目录或文件映射到docker容器中(参考):


在这里插入图片描述

使用:参数进行映射,可以看到本地目录映射到容器目录之后,此时之前容器在该目录下的文件看不到了!

  • 将本机的文件拷贝到Docker容器中

,是因为使用了,这个参数的意思,就是当运行一个容器的时候,如果容器已经存在,就删除创建一个新的容器!

9.1 docker相关

1、查看docker版本信息

2、docker添加到用户组,不用使用docker时每次输入

3、启动docker

9.2 image镜像相关命令

1、查看本机有哪些镜像文件

2、删除镜像文件

或:

3、

或:

9.3 container容器相关命令

1、列出所有的容器

2、列出所有容器,包括终止运行的容器

或:

3、先远程仓库抓取镜像到本地

或:

4、运行容器

实例:

5、停止运行容器

或 在容器中输入: 或 直接在容器中按 快捷键

使用这种方式,之前的容器就会,你在容器中安装的环境,传入的文件都没有了,当你再次启动一个容器的时候,就会从新从镜像中安装,因此最好把需要的环境一开始就写到文件中,这样就可以把需要的环境都编译到image文件中!

退出容器之后,在容器中安装的额

6、删除容器

7、重新运行终止的容器

8、进入一个正在运行容器的终端

9、把容器中的文件或目录拷贝到本机

9.4 构建自己的image镜像

1、在中,编写不打包到image中的文件路径

 

2、编写:

 

3、创建image文件

 

创建成功后查看自己创建的镜像:

4 、用自己创建的镜像生成容器

 

参考:https://ruanyifeng.com/blog/2018/02/docker-tutorial.html


创作不易,观众老爷们请留步… 动起可爱的小手,点个赞再走呗 (๑◕ܫ←๑)

到此这篇dockerd启动(dockerd启动 参数)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • rbac权限控制(rbac权限控制模型)2025-05-08 14:27:04
  • ar是什么意思中文翻译(appear是什么意思中文翻译)2025-05-08 14:27:04
  • 数组的some和every方法(数组的equals方法)2025-05-08 14:27:04
  • ldr arm指令(arm指令adr)2025-05-08 14:27:04
  • ifstream在哪个头文件(ifstream写文件)2025-05-08 14:27:04
  • dockerdesktop运行错误(docker desktop is shutting down)2025-05-08 14:27:04
  • resnet50网络结构怎么画好看(lenet网络结构怎么画)2025-05-08 14:27:04
  • aiplus是什么牌子耳机(airplus02是什么牌子耳机)2025-05-08 14:27:04
  • arrang用法(arrange的用法和短语)2025-05-08 14:27:04
  • uchar(uchar范围)2025-05-08 14:27:04
  • 全屏图片