Docker学习心得
  xZeGYzI7q4Df 2023年11月02日 30 0

Docker学习心得

Docker 是一个流行的容器化平台,可以帮助开发人员和运维人员更轻松地构建、部署和管理应用程序。Docker 的核心是容器技术,它提供了一种轻量级的虚拟化方案,使得应用程序可以更加可移植、可扩展和可靠。在本篇博客中,我们将介绍 Docker 的基本概念和使用方法,帮助读者快速入门 Docker。

Docker 的基本概念

镜像(Image)

Docker 镜像是一个只读的模板,它可以用来创建容器。一个镜像可以包含一个操作系统、应用程序、库和依赖项等。Docker 镜像是通过 Dockerfile 文件构建的,Dockerfile 文件包含了构建镜像所需的指令和参数,可以通过 docker build 命令构建出一个镜像。

容器(Container)

Docker 容器是 Docker 镜像的一个运行实例。容器是一个独立的、可执行的软件包,它包含了应用程序以及所有的依赖项。容器的运行环境是相对独立的,不会与主机环境产生冲突。容器可以被创建、启动、停止、移动和删除。

仓库(Repository)

Docker 仓库是用来存储 Docker 镜像的地方。Docker 官方提供了一个公共的 Docker Hub 仓库,该仓库包含了大量的镜像,我们可以通过 docker pull 命令从 Docker Hub 中下载镜像。用户也可以搭建自己的私有仓库,用来存储自己的镜像。

Docker 的安装

在开始使用 Docker 之前,我们需要先安装 Docker。Docker 支持多种操作系统,包括 Linux、Windows 和 macOS。在本博客中,我们以 Ubuntu 20.04 为例,介绍 Docker 的安装方法。

Ubuntu 20.04 的安装

在 Ubuntu 20.04 上安装 Docker 有两种方法:使用 apt 包管理器安装和手动安装。

使用 apt 包管理器安装

使用 apt 包管理器安装 Docker 非常简单,只需要执行以下命令即可:

$ sudo apt update
$ sudo apt install docker.io

手动安装

手动安装 Docker 需要先下载 Docker 的安装包,然后再进行安装。以下是手动安装 Docker 的步骤:

  1. 下载 Docker 的安装包:
$ wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/docker-ce_20.10.6~3-0~ubuntu-focal_amd64.deb
  1. 安装 Docker:
$ sudo dpkg -i docker-ce_20.10.6~3-0~ubuntu-focal_amd64.deb

Docker 的使用

在安装了 Docker 后,我们可以开始使用 Docker 来构建、运行和管理容器了。以下是 Docker 的基本使用方法。

构建镜像

构建镜像需要先准备一个 Dockerfile 文件,该文件包含了构建镜像所需的指令和参数。以下是一个简单的 Dockerfile 文件的例子:

FROM ubuntu:20.04
RUN apt update && apt install -y nginx
CMD ["nginx", "-g", "daemon off;"]

在该 Dockerfile 文件中,我们从 Ubuntu 20.04 镜像开始构建,并安装了 nginx 服务。最后,我们使用 CMD 指令来启动 nginx 服务。

在 Dockerfile 文件所在的目录中执行以下命令,即可构建镜像:

$ docker build -t my-nginx .

其中,-t 参数用来指定镜像的名称(此处为 my-nginx),“.” 表示当前目录是 Dockerfile 文件所在的目录。

运行容器

构建好镜像后,我们可以使用 docker run 命令来运行容器。以下是一个简单的运行容器的例子:

$ docker run -d -p 80:80 my-nginx

其中,-d 参数表示以后台模式运行容器,-p 参数指定容器的端口映射(这里将容器的 80 端口映射到主机的 80 端口),my-nginx 是我们刚才构建的镜像的名称。

查看容器

可以使用 docker ps 命令来查看正在运行的容器:

$ docker ps

该命令会列出所有正在运行的容器的相关信息,包括容器的 ID、名称、状态等。

停止容器

可以使用 docker stop 命令来停止容器:

$ docker stop <container_id>

其中,<container_id> 是容器的 ID。

删除容器

可以使用 docker rm 命令来删除容器:

$ docker rm <container_id>

其中,<container_id> 是容器的 ID。

查看镜像

可以使用 docker images 命令来查看本地所有的镜像:

$ docker images

该命令会列出所有本地的镜像的相关信息,包括镜像的 ID、名称、标签等。

删除镜像

可以使用 docker rmi 命令来删除本地的镜像:

$ docker rmi <image_id>

其中,<image_id> 是镜像的 ID。

Docker 的进阶使用

除了基本的使用方法,Docker 还提供了许多高级的功能和特性,可以进一步提高开发、部署和管理的效率。以下是一些 Docker 的进阶使用方法。

Docker Compose

Docker Compose 是一个用于定义和运行多个 Docker 容器的工具。使用 Docker Compose,我们可以通过一个简单的 YAML 文件来定义多个服务,并通过一个命令来启动、停止和删除这些服务。以下是一个简单的 Docker Compose 文件的例子:

version: "3"
services:
  web:
    build: .
    ports:
      - "5000:5000"
  redis:
    image: "redis:alpine"

在该文件中,我们定义了两个服务:web 和 redis。web 服务使用当前目录下的 Dockerfile 来构建镜像,并将容器的 5000 端口映射到主机的 5000 端口。redis 服务使用 Redis 官方提供的 alpine 镜像。

使用以下命令即可启动这些服务:

$ docker-compose up

Docker Swarm

Docker Swarm 是 Docker 官方提供的一个容器编排工具,可以用来管理多个 Docker 容器和主机。使用 Docker Swarm,我们可以将多个 Docker 主机组成一个集群,并通过一个命令来启动、停止和删除多个容器。以下是一些 Docker Swarm 的基本使用方法。

初始化 Swarm

首先需要初始化 Swarm:

$ docker swarm init

加入 Swarm

如果要将其他 Docker 主机加入到 Swarm 集群中,需要在其他 Docker 主机上执行以下命令:

$ docker swarm join --token <token> <ip_address>:<port>

其中,<token> 是通过 docker swarm init 命令生成的令牌,<ip_address> 和 <port> 是 Swarm 集群的地址和端口。

创建服务

可以使用 docker service create 命令来创建一个服务:

$ docker service create --name my-web --replicas 3 -p 80:80 my-nginx

其中,--name 参数用来指定服务的名称,--replicas 参数用来指定服务的副本数,my-nginx 是我们刚才构建的镜像的名称。

查看服务

可以使用 docker service ls 命令来查看所有运行

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  jnZtF7Co41Wg   2023年12月11日   31   0   0 nginx客户端服务端
  wwLZeziuqjLR   2023年12月11日   32   0   0 Dockercentos
  MCWYWqSAMsot   2023年12月11日   33   0   0 Docker
  stLBpDewCLT1   2023年12月08日   30   0   0 nginx
  DnoStTHsc0vp   2023年12月11日   27   0   0 Docker
  wwLZeziuqjLR   2023年12月08日   103   0   0 Dockercentosbash
  jnZtF7Co41Wg   2023年12月10日   22   0   0 nginx客户端服务端NFS