赞
踩
目录
Docker是一种开源的应用容器引擎,它可以让开发者将应用及其依赖打包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化。
Docker Desktop是一个用于Mac和Windows的Docker工具,它包含了Docker Engine、Docker CLI客户端、Docker Compose、Docker Machine和Kitematic。主要特点包括:
这次我们使用的是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镜像速度不是特别慢,最好自己亲自试试
个人之前(大概2,3年)切换了阿里云的镜像源,使用一段时间后发现,阿里云的docker镜像源已经很久没更新了。。。
即使你硬要切换国内的镜像源,请不要用阿里的……
Docker拉取镜像是通过docker pull命令实现的。这个命令从Docker镜像仓库(默认是Docker Hub)下载镜像到本地。
docker pull [镜像名词]
基本的命令格式是:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
其中:
OPTIONS命令的一些选项包括:
例如,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命令的一些选项包括:
例如,docker search mysql命令会搜索包含"mysql"关键词的所有镜像。
这个命令在以下场景中非常有用:
拉取Docker镜像后(如果镜像未拉取,使用docker run命令会自动拉取),你可以使用docker run命令来基于这个镜像创建并启动一个新的容器。
docker run命令用于从Docker镜像创建一个新的容器,并运行它。这个命令是docker create和docker start命令的组合。
基本的命令格式是:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
其中:
例如,以下命令
docker run --name my-container ubuntu bash
会创建并运行一个名为my-container的容器,基于ubunt镜像,运行ubash命令
--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选项有以下几个可选的值:
如果你希望每次运行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被停止。
在这里不做详细介绍,只介绍基础用法(我也只用过基础功能,后面会续继续学习……),以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服务。下面是每个部分的详细解释:
将上面的内容保存为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教学的内容,已经结束。
如果你发现有任何遗漏或错误,或者有任何建议和问题,欢迎在评论区留言或私信我,我会尽快进行修改和回复。
感谢你的阅读和支持!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。