初识Docker Desktop for Windows10
Docker是什么?我想这就不需要过多的解释了,容器的使用带来的应用环境的相互隔离优点也是它能风靡全球,作为云原生技术之一,广泛应用的原因。
我们都知道Windows操作系统,上手容易,但使用时间长了之后,就会出各种古怪的问题,应用残留、软件冲突诸多问题,最后导致系统性能下降、速度变慢,甚至瘫痪。
所以,我对Windows下的Docker很感兴趣,它会不会是想windows那样让人简简单单的就上手使用,都不用去专门的学习相关知识,只要知道功能,通过点点菜单,找找命令就一切OK了?
那就试试呗……
Docker Desktop for Windows 的安装步骤
第一步 下载Docker for Windows安装程序
浏览器访问Docker官网:
https://www.docker.com
打开后会自动识别正在使用的系统,并提供Windows安装程序下载
点击图中”Download Docker Desktop“开始下载安装程序,速度与个人网速有关,文件总大小约 621 MB (651,885,904 字节)
第二步安装Docker Desktop for Windows
Windows系统下,安装程序都比较简单,没做任何修改,根据向导提示默认”下一步“,最后完成。
完成后,系统会注销当前用户,重新登陆(不知道是不是必须的,我用的本地用户模式ping码验证登录系统)
桌面上会出现一个”Docker Desktop"图标,蓝底白色小鲸鱼,非常好看:
第三步 启动
在注销重新登陆Windows桌面后,Docker Desktop窗口会自动弹出,
提示需要更新的WSL内核,才能运行,按照提示:
管理员身份打开”powershell",输入下边命令:
wsl --update
完成后显示:
过程还是比较快的……
我以为更新完后,就已经可以使用了,但是
在powershell命令窗口里,输了两个命令:
#查看运行的docker容器
docker ps
#查看docker版本
docker version
运行结果:
运行的容器肯定是没有的……
查看版本时,发现只有client状态,同志们都知道Docker是CS构架的,也就是说Server没启来。
所以接下来,我们还需要:
重新点击桌面图标,启动docker desktop
打开docker窗口后,直接点击"Accept"就行了,
……
然后就是等待,因为只能看见窗口和打转的小圈圈,所以我估计它是在做检测和更新等。
大概几分钟后,我们就可以看到这个界面了
这时候在输入命令
docker version
你会看到,之前未启动的Server端状态也有了
至此,安装完毕。
Docker Desktop 使用的简单介绍
在Windows里安装Docker的确是非常简单,与安全普通的windows应用或者软件基本上没有什么区别,我用的Windows10 企业版 LTSC 系统 版本 21H2(内部版本 19044.3086)只要高于此版本,以上安装操作都能简单完成,比在linux下安装省心多了。
但是,安装好开始使用时,就会发现该学的还是要去学,Docker Desktop更多的像是一个图形界面的集中管理平台,很多使用还是需要通过命令来实现。
比如,看图:
第一次运行时,它会很友善的让你尝试运行一个简单的容器,然后告诉你不用去自己敲命令了,只要复制命令,粘贴到terminal窗口里就行,照做吧(虽然本地一个镜像都没有):
复制命令docker run -d -p 80:80 docker/getting-started
粘贴到terminal窗口里,回车:
恭喜你,估计猜到了:没有镜像,又要运行容器,那么就会自己下载
下载完之后,运行容器:
而这时候,回到windows桌面的Docker desktop窗口后,你就会看到在Containers列表里,显示了正在运行的容器:
不需要你再去输入docker ps
查看运行中的容器信息了,该有的都有。
停止,或者删除运行容器记录
找到你需要停止,或删除记录的容器
然后,都不需要多说,看图标大家都懂,想怎么的就拿鼠标点它,真是没压力啊
如果你还想做一些其他的操作:
你可以找到3个小点点的按钮,点击它开打菜单,里边有一些关于容器操作的列表命令:重启、进入容器、查看镜像包等……
获取一个新的镜像,以mysql镜像为例
确保你的docker正在运行,在命令窗口输入:
#输入命令:docker pull mysql
#运行结果如下:
PS C:\Users\Administrator> docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
46ef68baacb7: Pull complete
94c1114b2e9c: Pull complete
ff05e3f38802: Pull complete
41cc3fcd9912: Pull complete
07bbc8bdf52a: Pull complete
6d88f83726a9: Pull complete
cf5c7d5d33f7: Pull complete
9db3175a2a66: Pull complete
feaedeb27fa9: Pull complete
cf91e7784414: Pull complete
b1770db1c329: Pull complete
Digest: sha256:15f069202c46cf861ce429423ae3f8dfa6423306fbf399eaef36094ce30dd75c
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
在不指定版本tag时,默认拉取的时最终版本mysql:latest
这时候回到窗口视图,在images视图窗口中,就会多出一个mysql镜像,并可以直接看到相关信息,效果与输入命令docker images mysql
相似:
其中的“Unused”表示还从未使用过此镜像,创建容器。
打开镜像对应更多操作菜单,选中“View packages and CVEs”选项,这时你会看到:
关于mysql:latest镜像制作使用的基础镜像情况,创建过程等等一目了然。
我们来点击“Run”试试看,会发生什么……
跳出一个对话框:提示输入要使用mysql镜像运行容器时候的一些参数,大概涉及容器名称(Container name)、
端口映射等内容。
可以参考命令进行对照输入
#命令主体
#docker run mysql:latest
#增加参数端口映射
#docker run -p 3306:3306 mysql:latest
#增加指定容器名称
#docker run -p 3306:3306 --name my_sql mysql:latest
##增加指定挂载卷。将宿主机上的/mydata/mysql/log目录挂载到容器的/var/log/mysql目录下,用于存储MySQL的日志文件。
#docker run -p 3306:3306 --name my_sql -v /mydata/mysql/log:/var/log/mysql mysql:latest
#增加运行命令参数。设置MySQL的root账户密码为root。
#docker run -p 3306:3306 --name my_sql -v /mydata/mysql/log:/var/log/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
实例输入:
Containers 里输入:你需要的容器名称
Ports提供了2个主机与容器直接端口的对应,一般只需要一个就够了,第一行里输入:3306
Volumes:把主机的某个目录加载对应到容器里的某个目录,一般不用
Environment varibales:varible输入“参数名称”,value输入“参数值”
不清楚也没关系,直接点击“Run”,试试是否能正常运行。
否则会有提示logs:
2023-06-29 09:27:55 2023-06-29 01:27:55+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.33-1.el8 started.
2023-06-29 09:27:55 2023-06-29 01:27:55+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2023-06-29 09:27:55 2023-06-29 01:27:55+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.33-1.el8 started.
2023-06-29 09:27:55 2023-06-29 01:27:55+00:00 [ERROR] [Entrypoint]: Database is uninitialized and password option is not specified
2023-06-29 09:27:55 You need to specify one of the following as an environment variable:
2023-06-29 09:27:55 - MYSQL_ROOT_PASSWORD
2023-06-29 09:27:55 - MYSQL_ALLOW_EMPTY_PASSWORD
2023-06-29 09:27:55 - MYSQL_RANDOM_ROOT_PASSWORD
运行后,又关闭了
可查看我的一篇博文,里边有简要的介绍使用Docker容器运行Mysql_docker运行mysql
窗口里有非常详细的查看视图标签选择,‘Logs’、‘Inspect‘、'Files’都很有用;
一个正常启动mysql容器的实例
注意
在windows系统Docker Desktop里使用镜像,没必要使用命令行操作,
我在ubuntu里使用正常的命令
docker run -it -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql bash
在Windows powershell里执行成功后,出现问题,mysql运行故障
C:\Users\Administrator> docker run -it -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql bash
8f1a1a0347895ba831856693d14900b44edd1795c9b049bbb99a8fa85f540b4f
进入容器后:
mysqladmin -u root -p status
password:
#出错提示,如下:
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
成功的方式
使用窗口“Run”,输入对应值,然后运行,一切正常:
检查mysql运行状态:正常
mysqladmin -u root -p status
Enter password:
Uptime: 355 Threads: 2 Questions: 6 Slow queries: 0 Opens: 119 Flush tables: 3 Open tables: 38 Queries per second avg: 0.016
#进入mysql命令行
mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.33 MySQL Community Server - GPL
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
删除容器记录
每次使用镜像运行容器时,都会产生一个容器运行的记录,不管失败或成功都不会对源镜像产生影响,但是,如果你正在运行一个实例容器时,有些操作就得注意了。
因为如果我们删除容器记录时,一般情况下会同时删除运行数据的
可以批量选中删除
文章来源:https://www.toymoban.com/news/detail-771670.html
文章来源地址https://www.toymoban.com/news/detail-771670.html
以上就是我初次使用Docker Desktop的操作记录,更多的操作使用还需继续探索,到此结束。
到了这里,关于初识Docker Desktop for Windows10的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!