0


docker最详细基础教程:如何在Win11中使用docker desktop

前言

Docker是一种开源的应用容器引擎,它可以让开发者将应用及其依赖打包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化。

Docker Desktop是一个用于Mac和Windows的Docker工具,它包含了Docker Engine、Docker CLI客户端、Docker Compose、Docker Machine和Kitematic。主要特点包括:

  • 简单易用:Docker Desktop提供了一个图形用户界面,使得管理容器变得非常简单。你可以通过点击几个按钮来创建、启动和停止容器。
  • 集成开发环境:Docker Desktop可以与你的IDE(如Visual Studio Code)集成,使得你可以直接在IDE中构建和运行容器。
  • 支持多种操作系统:Docker Desktop支持Mac和Windows两种操作系统,这使得你可以在你最喜欢的操作系统上使用Docker。
  • 支持Kubernetes:Docker Desktop包含了一个单节点的Kubernetes集群,你可以用它来测试你的应用。
  • 支持多种应用:Docker Desktop支持运行各种应用,包括Web应用、数据库、后台服务等。
  • 自动更新:Docker Desktop会自动检查并安装更新,这使得你总是可以使用最新的Docker版本。

这次我们使用的是Docker Desktop,面向初学者的教程,教你如何在win11系统中使用Docker Desktop,

如果你还没安装,可以看我之前发布的博客:手把手教你在Win11下安装docker-CSDN博客https://blog.csdn.net/btaworld/article/details/138505501

界面说明

由于docker desktop软件没有汉化翻译,可能阅读起来会有一些问题,下面是我用屏幕翻译软件翻译的截图,仅供参考(如果不希望阅读,可以点击边栏标题跳过):

设置界面翻译图+一些简单说明

差不多了,上面是一些个人感觉比较常用的设置(我也只是新手,其他的设置也没怎么用到)

主要功能界面介绍

这个页面是Docker镜像列表,展示了你之前拉取或创建的所有Docker镜像。每个镜像都有一个唯一的标识符,可能还包括标签和创建时间等信息。你可以使用这些镜像来创建新的Docker容器。

"Containers"页面是Docker Desktop的一个功能,它显示了你当前系统中所有的Docker容器,包括正在运行的和已经停止的。

关于切换docker镜像源

一言蔽之,不推荐

为什么?现在在官网拉取docker镜像速度不是特别慢,最好自己亲自试试

个人之前(大概2,3年)切换了阿里云的镜像源,使用一段时间后发现,阿里云的docker镜像源已经很久没更新了。。。

即使你硬要切换国内的镜像源,请不要用阿里的……

如何拉取镜像

Docker拉取镜像是通过docker pull命令实现的。这个命令从Docker镜像仓库(默认是Docker Hub)下载镜像到本地。

docker pull [镜像名词]

基本的命令格式是:

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

其中:

  • NAME:是镜像的名称,例如mysql、ubuntu等。
  • TAG:是可选的,表示镜像的版本标签。如果不指定,Docker会默认拉取latest标签的镜像。
  • DIGEST:是可选的,表示镜像的摘要。摘要是镜像内容的唯一哈希值,可以用来确保下载的镜像内容的完整性和一致性。

OPTIONS命令的一些选项包括:

  • -a, --all-tags:拉取所有标签的镜像。
  • --disable-content-trust:跳过镜像内容的信任检查。

例如,docker pull mysql:5.7命令会从Docker Hub拉取标签为5.7的mysql镜像,拉取最新镜像可以使用 docker pull mysql:latest 命令或直接运行 docker pull mysql 命令

搜索镜像

如果你知道你需要的镜像的名称,但不确定它是否存在或者它的确切名称,你可以使用docker search命令来搜索它。

基本的命令格式是:

docker search [OPTIONS] TERM

其中,TERM是你要搜索的关键词。

docker search命令的一些选项包括:

  • --filter, -f:根据特定条件过滤搜索结果。
  • --format:自定义输出格式。
  • --limit:限制显示的搜索结果数量。
  • --no-trunc:不截断输出结果。

例如,docker search mysql命令会搜索包含"mysql"关键词的所有镜像。

这个命令在以下场景中非常有用:

  1. 寻找特定的镜像:如果你知道你需要的镜像的名称,但不确定它是否存在或者它的确切名称,你可以使用docker search命令来搜索它。
  2. 探索新的镜像:如果你想要探索一些新的镜像,例如你想要找一些特定的数据库或者Web服务器的镜像,你可以使用docker search命令来搜索。
  3. 比较不同的镜像:docker search命令的输出包含了每个镜像的一些基本信息,如星级、是否是官方的、描述等。你可以使用这些信息来比较不同的镜像,以便选择最适合你的那个。

创建容器

拉取Docker镜像后(如果镜像未拉取,使用docker run命令会自动拉取),你可以使用docker run命令来基于这个镜像创建并启动一个新的容器。

docker run命令用于从Docker镜像创建一个新的容器,并运行它。这个命令是docker create和docker start命令的组合。

基本的命令格式是:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

其中:

  • OPTIONS:是可选的,用于指定创建容器时的一些选项,如端口映射、环境变量、挂载卷等。
  • IMAGE:是必需的,指定要运行的Docker镜像。
  • COMMAND和ARG:是可选的,指定要在容器中运行的命令和参数。

例如,以下命令

docker run --name my-container ubuntu bash

会创建并运行一个名为my-container的容器,基于ubunt镜像,运行ubash命令

docker run命令的OPTIONS详细介绍

设置容器名词

--name:设置容器的名称。

例如,

docker run --name my-mysql mysql

会设置容器的名称为my-mysql。

以后台模式运行容器

-d, --detach:以后台模式运行容器。

例如,

docker run -d mysql

会在后台启动一个MySQL容器。

-d 或 --detach 选项用于在后台模式运行 Docker 容器。这意味着 Docker 会在后台启动并运行容器,而不会占用命令行或终端界面。当你运行 docker run -d mysql 命令时,Docker 会启动一个 MySQL 容器并在后台运行。你会立即返回到命令行提示符,而 MySQL 容器会在后台运行。推荐每次创建容器时添加上。

端口映射

-p, --publish:发布容器的一个或多个端口到主机。

例如,

docker run -p 3306:3306 mysql

会将MySQL容器的3306端口映射到主机的3306端口。

挂载多个端口:

例如,假设你有一个Nginx服务,它在容器的80端口提供HTTP服务,在容器的443端口提供HTTPS服务。你可以使用以下命令来运行这个Nginx的容器,并将这两个端口都映射到主机:

docker run -p 8080:80 -p 8443:443 --name my-nginx nginx

设置挂载卷

-v, --volume:挂载卷。

例如,

docker run -v /my/own/datadir:/var/lib/mysql mysql

会将主机的/my/own/datadir目录挂载到MySQL容器的/var/lib/mysql目录,这个目录是MySQL默认的数据目录。

注意:挂载卷可以直接挂载到win的系统目录下

假设你有一个Redis容器,你想将Windows的C:\data目录挂载到Redis容器的**/data目录,你可以使用/c/data:**

docker run -v /c/data:/data --name my-redis redis

或,直接使用C:\data:

docker run -v C:\data:/data --name my-redis redis

设置环境变量

-e, --env:设置环境变量。

例如,

docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql

会设置MySQL的root用户的密码为my-secret-pw。

容器退出后自动删除容器

--rm:容器退出后自动删除容器。

例如,

docker run --rm mysql

会在MySQL容器退出后自动删除它。

容器的重启策略

--restart 选项会设置容器的重启策略,--restart选项有以下几个可选的值:

  • no:这是默认值,容器不会被自动重启。
  • on-failure:只有在容器非正常退出时(即退出状态非0),容器才会被自动重启。
  • always:无论容器的退出状态是什么,容器都会被自动重启。
  • unless-stopped:无论容器的退出状态是什么,容器都会被自动重启,除非容器已经被手动停止。

如果你希望每次运行docker,容器自动启动,可以使用设置--restart=always,例如:

docker run --restart=always --name my-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql

可以实现MySQL容器将会在Docker启动时自动启动。

如果已经创建了容器,可以使用docker update命令来更改容器的重启策略:

docker update --restart=always container_name

你需要将container_name替换为你的容器的名称或ID。

这个命令会将容器的重启策略设置为always,这意味着无论容器的退出状态是什么,容器都会被自动重启,除非Docker被停止。

使用Docker Compose配置文件.yml

在这里不做详细介绍,只介绍基础用法(我也只用过基础功能,后面会续继续学习……),以mysql举例:

version: '3.1'

services:
  myaql_db:
    image: mysql # mysql镜像,最新版本
    restart: always # 重启策略,always表示总是重启
    environment:
      MYSQL_ROOT_PASSWORD: password # mysql的root用户密码
    volumes:
      - ./mysql_text/data:/var/lib/mysql # mysql数据存储目录
      - ./mysql_text/conf:/etc/mysql/conf.d # mysql配置文件目录
      - ./mysql_text/logs:/var/log/mysql # mysql日志目录
    ports:
      - 3306:3306

这是一个Docker Compose的配置文件,用于定义和运行一个名为myaql_db的MySQL服务。下面是每个部分的详细解释:

  • version: '3.1':这是Docker Compose文件的版本号,它决定了可以使用哪些Docker Compose的特性。
  • services::这个关键字下面列出了运行的所有服务(在这个例子中,只有一个服务myaql_db)。
  • myaql_db::定义的服务的名称。
  • image: mysql:5.7:这个服务使用的Docker镜像的名称和标签。这里使用的是MySQL 5.7版本的镜像。
  • restart: always:这个选项决定了Docker何时应该重启这个容器。always表示Docker总是应该重启这个容器,无论它是如何停止的。
  • environment::这个关键字下面列出了设置在容器内的环境变量。在这个例子中,设置了MySQL的root用户的密码。
  • volumes::这个关键字下面列出了所有挂载到容器内的卷。在这个例子中, - 当前目录下的mysql_text/data目录被挂载到了容器的/var/lib/mysql目录,- mysql_text/conf目录被挂载到了容器的/etc/mysql/conf.d目录,- mysql_text/logs目录被挂载到了容器的/var/log/mysql目录。
  • ports::这个关键字下面列出了所有映射到主机的端口。在这个例子中,容器的3306端口被映射到了主机的3306端口。

将上面的内容保存为docker-compose.yml文件,并在该文件所在的目录下运行

docker-compose up

命令,Docker Compose将会根据这个配置文件创建并启动一个名为myaql_db的MySQL服务。

如果你将这个文件保存为一个非docker-compose.yml的名字,例如mycompose.yml,你需要在运行docker-compose up命令时指定这个文件名。你可以使用-f选项来指定配置文件的名字,例如:

docker-compose -f mycompose.yml up

结语

如何在Win11中使用docker desktop教学的内容,已经结束。

如果你发现有任何遗漏或错误,或者有任何建议和问题,欢迎在评论区留言或私信我,我会尽快进行修改和回复。

感谢你的阅读和支持!

标签: docker 容器 运维

本文转载自: https://blog.csdn.net/btaworld/article/details/138509483
版权归原作者 “猿”谋人 所有, 如有侵权,请联系我们删除。

“docker最详细基础教程:如何在Win11中使用docker desktop”的评论:

还没有评论