docker 启动容器 docker入门——容器

​ 1.首先,bridge网络是Docker默认的网络模式。在这种模式下,每个容器都会分配一个独立的IP地址, 并且可以通过容器名或者IP地址进行访问。

1、docker对于容器的操作命令

以下是Docker对于容器的一些常用操作命令:

代码语言:javascript

复制

1. 查看容器列表:docker ps	-a或--all:显示所有容器,包括未运行的(docker ps默认只显示运行的容器)。	-f或--filter:根据条件过滤显示的内容。	--format:指定返回值的模板文件。	-l或--latest:显示最近创建的容器。	-n:列出最近创建的n个容器。	--no-trunc:不截断输出。	-q或--quiet:静默模式,只显示容器编号。	-s或--size:显示总的文件大小。2. 查看单个容器详细信息:docker inspect 3. 创建并运行容器:docker run     -i或--interactive:以交互模式运行容器,通常与-t一起使用。    -t或--tty:为容器分配一个伪终端。    -d或--detach:让容器在后台运行并返回容器ID。    --name:为容器指定一个名称。    -p或--publish:指定端口映射,格式为主机(宿主)端口:容器端口。    -v或--volume:将宿主机目录或文件挂载到容器中,格式为宿主机目录:容器目录。    --network或--net:为容器指定一个网络。    --add-host:添加自定义主机到IP的映射(host:ip)。4. 停止容器:docker stop 5. 启动已停止的容器:docker start 6. 重启容器:docker restart 7. 删除容器:docker rm 	-f: 强制删除正在运行的容器	8. 进入正在运行的容器:docker exec -it  /bin/bash9. 将宿主机目录挂载到容器中:docker run  -v 10. 将容器添加到一个自定义网络中:docker network connect  11. 查看所有网络:docker network ls12. 删除自定义网络:docker network rm 

1.2详解图

docker 启动容器_容器启动失败_容器启动命令

docker 启动容器_容器启动失败_容器启动命令

docker 启动容器_容器启动失败_容器启动命令

容器启动命令_docker 启动容器_容器启动失败

2、docker容器之间的网络通信2.1、Docker容器之间的通信方式:使用容器IP访问:每个Docker容器都有一个唯一的IP地址,如果两个容器在同一台主机上运行,那么它们可以直接通过对方的IP地址进行通信。但需要注意的是,一旦容器重启,其IP地址可能会发生变化。宿主机IP:端口访问:另一种方式是通过宿主机的IP地址和端口号来访问容器。具体来说,可以在运行容器时使用-p参数来映射宿主机的端口到容器内部的端口,从而实现容器之间或者容器与宿主机之间的通信。自定义网络:除了上述两种方式外,Docker还提供了自定义网络的功能,允许用户创建自己的虚拟网络并将容器添加到该网络中。在自定义网络中,容器之间可以通过各自的IP地址进行通信。此外,Docker还提供了一种名为“Container Networking Mode”的网络模式,在这种模式下,新创建的容器将不会创建自己的网卡和配置自己的IP地址,而是会和一个指定的容器共享IP、端口范围等,这样两个容器之间可以使用localhost进行高效快速的通信。2.2、docker网络模式的用途和优缺点。

​ 1.首先,bridge网络是Docker默认的网络模式。在这种模式下,每个容器都会分配一个独立的IP地址, 并且可以通过容器名或者IP地址进行访问。bridge网络还支持端口映射,可以将主机上的端口映射到容 器内部的端口上,从而实现容器与外部的通信。

​ 2.其次,host网络模式可以让容器共享主机的网络栈,也就是说容器可以直接使用主机的网络接口进行 通信。这种模式下,容器之间可以通过localhost进行通信,但是不支持端口映射。

​ 3.最后,overlay网络模式是一种比较复杂的网络模式,它可以实现跨主机的容器之间的通信。在这种 模式下,需要有一个额外的组件来负责容器之间的网络连接和通信。目前最常用的overlay网络实现是 Flannel和Weave。

代码语言:javascript

复制

overlay网络的配置方法:docker03上:docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrapdocker01、02上:vim  /etc/docker/daemon.json{  "hosts":["tcp://0.0.0.0:2376","unix:///var/run/docker.sock"],  "cluster-store": "consul://10.0.0.55:8500",  "cluster-advertise": "10.0.0.56:2376",  "insecure-registries": ["10.0.0.56:5000"]}2)创建overlay网络docker network create -d overlay over_test3)启动容器测试docker run -it --network over_test --name test1  busybox:latest /bin/sh你可以使用以下命令查看当前已经创建的所有Docker网络:docker network ls如果你想要删除一个已经存在的overlay网络,可以使用以下命令进行删除:docker network rm over_test

除了上述三种网络模式外,Docker还提供了其他一些网络相关的功能,例如自定义网络、容器链接等。这些功能可以帮助用户更好地管理和配置Docker容器之间的通信。

3、docker数据持久化

Docker容器数据持久化是一个重要的概念,它让容器内的数据在Docker容器停止、删除或者重新创建之后依然存在。为实现这样的需求,Docker提供了两种主要的方式来实现数据的持久化:一是在运行的容器中直接创建volume:

docker volume create命令用于在Docker中创建一个新的卷。这个卷可以被一个或多个容器使用,提供了一种独立于容器生命周期的数据存储方式。也就是说,即使容器被删除,卷中的数据仍然会保留,可以在新的容器中重新挂载并使用。

该命令的基本语法格式为:docker volume create [OPTIONS] [VOLUME]。其中,OPTIONS参数是可选的,用于指定一些特殊的设置或者参数;而VOLUME则是必选的,用于指定要创建的卷的名称。

例如,如果我们想创建一个名为my-vol的卷,我们可以运行以下命令:

代码语言:javascript

复制

docker volume create my-vol

执行上述命令后,Docker会在后台创建一个名为my-vol的卷。如果需要查看已创建的卷列表,可以使用 docker volume ls命令。

创建了名为my-vol的卷之后,我们可以将其挂载到容器中,以便容器可以访问其中的数据。

要将卷挂载到容器中,可以使用 docker run 命令的 -v参数来指定要挂载的卷和容器内的目录。例如,如果我们想将卷挂载到容器的 /app 目录下,可以运行以下命令:

代码语言:javascript

复制

docker run -itd --name my-container -v my-vol:/app my-image

上述命令会创建一个名为 my-container的新容器,并将 my-vol卷挂载到该容器的 /app 目录下。在容器内部,可以通过 /app 目录访问卷中的数据。

如果需要在多个容器之间共享同一个卷,可以将一个容器设置为另一个容器的父容器,并使用 –volumes-from参数来继承父容器中的卷。例如,如果我们有一个名为 parent-container 的父容器,并且已经将卷挂载到了该容器中,我们可以使用以下命令来创建一个新的子容器,并将其连接到父容器的卷上:

代码语言:javascript

复制

docker run -itd --name child-container --volumes-from parent-container my-image

上述命令会创建一个名为 child-container的新容器,并将其连接到父容器 parent-container中的卷上。在子容器内部,也可以通过相同的路径访问卷中的数据。

二是创建一个存储内外部映射关系的路径,然后其他容器使用–volumes-from进行引用,这种情况主要用于多个容器共享一组数据的情况。

器,并将其连接到父容器 parent-container中的卷上。在子容器内部,也可以通过相同的路径访问卷中的数据。

二是创建一个存储内外部映射关系的路径,然后其他容器使用–volumes-from进行引用,这种情况主要用于多个容器共享一组数据的情况。

此外,Docker容器还可以通过挂载宿主机文件系统或内存的方式来实现数据存储。具体操作可以通过如下命令启动一个容器并指定要挂载的数据卷:docker run -itd –name [容器名字] -v [宿主机目录]:[容器目录] [镜像名称] [命令(可选)]。其中,通过-v参数可以将宿主机的某目录作为数据卷挂载到容器中,使该容器与宿主机共享此目录。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创文章,作者:筱凯,如若转载,请注明出处:https://www.jingyueyun.com/ask/355.html

(0)
筱凯筱凯
上一篇 2024 年 7 月 11 日
下一篇 2024 年 7 月 11 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,500M大带宽限量抢购  >>点击进入