目录

  1. Docker 简介
  2. 安装 Docker
  3. 镜像管理
  4. 容器网络
  5. 数据卷
  6. 总结

1. Docker 简介

Docker 是一个轻量级的容器化技术,它可以在不同的平台上运行应用程序,而不需要修改应用程序的代码或配置。Docker 可以让开发人员和运维人员更轻松地构建、部署和运行应用程序。

Docker 的核心是容器,它是一种轻量级的虚拟化技术,可以在一个隔离的环境中运行应用程序。Docker 容器与虚拟机不同,它们共享主机操作系统的内核,并使用 Docker 引擎来隔离容器和主机之间的资源。

2. 安装 Docker

首先,我们需要安装 Docker。在 Ubuntu 系统中,可以使用以下命令来安装 Docker:

 

sqlCopy code

sudo apt-get update sudo apt-get install docker.io

安装完成后,可以使用以下命令来启动 Docker:

 

sqlCopy code

sudo systemctl start docker

可以使用以下命令来检查 Docker 是否安装成功:

 

cssCopy code

docker --version

3. 镜像管理

Docker 镜像是一个包含应用程序和其依赖项的只读文件。使用 Docker 镜像可以快速地创建容器,并在多个环境中部署应用程序。

3.1 拉取镜像

Docker 官方提供了一个公共的镜像仓库 Docker Hub,开发人员可以从中拉取所需的镜像。

使用以下命令可以拉取镜像:

 

cssCopy code

docker pull [IMAGE NAME]

例如,以下命令可以拉取官方的 Ubuntu 镜像:

 

Copy code

docker pull ubuntu

3.2 查看镜像

使用以下命令可以查看已经拉取的镜像:

 

Copy code

docker images

3.3 删除镜像

使用以下命令可以删除已经拉取的镜像:

 

cssCopy code

docker rmi [IMAGE NAME]

例如,以下命令可以删除名为 ubuntu 的镜像:

 

Copy code

docker rmi ubuntu

4. 容器网络

Docker 容器可以通过网络进行通信。在默认情况下,Docker 容器使用 Docker 默认网络,它是一个桥接网络,所有的容器都连接到同一个网桥上。

4.1 创建网络

使用以下命令可以创建 Docker 网络:

 

cssCopy code

docker network create [NETWORK NAME]

例如,以下命令可以创建名为 mynetwork 的网络:

 

luaCopy code

docker network create mynetwork

容器网络是Docker容器技术中非常重要的一部分,它使得Docker容器可以进行网络通信,形成一个类似于局域网的网络环境。Docker容器网络提供了一种灵活的方式,可以让容器与主机和其他容器进行通信,同时也能够隔离容器之间的网络环境。

Docker容器网络主要有以下几种模式:

  • Host模式:使用主机网络模式,容器将共享主机的网络命名空间。容器将直接使用主机上的IP地址和端口,可以直接访问主机上的其他服务,但是无法隔离容器之间的网络环境。
  • Container模式:使用容器网络模式,多个容器之间可以直接通信,但是无法与主机或其他容器进行通信。
  • Bridge模式:使用默认的Docker网桥,将多个容器连接在同一个虚拟网络中,它们之间可以进行网络通信。此模式下,Docker将为每个容器分配一个IP地址,并通过NAT方式将容器网络与主机网络隔离开来。
  • Overlay模式:用于在不同主机上运行的容器之间建立连接,它通过使用VXLAN隧道协议,将多个Docker宿主机的容器网络虚拟成一个虚拟网络,从而实现容器之间的网络通信。

3.3.1 Bridge模式

Bridge模式是Docker容器网络最常用的模式之一。它可以将多个容器连接在同一个虚拟网络中,它们之间可以进行网络通信。Docker会为每个容器分配一个IP地址,并通过NAT方式将容器网络与主机网络隔离开来。

使用Bridge模式需要先创建一个虚拟网桥,然后将多个容器连接到这个虚拟网桥上。创建虚拟网桥的命令如下:

 

luaCopy code

$ sudo docker network create mybridge

这条命令将创建一个名为“mybridge”的虚拟网桥。接下来,我们可以使用该虚拟网桥启动容器,例如:

 

cssCopy code

$ sudo docker run -d --name container1 --network mybridge nginx

这条命令将启动一个名为“container1”的容器,使用“mybridge”虚拟网桥进行网络连接,并运行nginx服务。

在Bridge模式下,Docker会为每个容器分配一个IP地址,我们可以使用如下命令查看容器的IP地址:

 

yamlCopy code

$ sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container1

接下来是Docker的网络相关操作教程:

容器网络

Docker容器可以使用多种网络模式,例如:

  • bridge模式:默认模式,容器连接到docker0桥接网络。
  • host模式:容器直接使用宿主机的网络,没有独立的网络命名空间。
  • none模式:容器没有网络,类似于Linux的network namespace
  • overlay模式:适用于跨主机的容器通信。

我们来详细了解一下这些网络模式:

bridge模式

bridge模式是Docker的默认网络模式,它将容器连接到docker0网桥,然后通过NAT将容器IP地址转换为主机的IP地址。

要创建一个使用bridge网络的容器,可以使用以下命令:

bashCopy code

docker run --name my-bridge-container -d busybox sleep 3600

此命令将创建一个名为my-bridge-container的容器,并在后台运行一个busybox镜像,休眠3600秒。

查看容器的网络信息:

 

bashCopy code

docker inspect my-bridge-container | grep -i ipaddress

输出如下:

 

jsonCopy code

"IPAddress": "172.17.0.2",

我们可以看到容器的IP地址是172.17.0.2,这是由docker0网桥提供的。

在bridge网络中,容器可以使用容器名称或IP地址进行通信。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐