当前位置: 代码网 > it编程>数据库>Mysql > Docker Desktop 安装使用教程

Docker Desktop 安装使用教程

2024年07月31日 Mysql 我要评论
作为开发人员,在日常开发中,我们需要在本地去启动一些服务,如:redis、MySQL等,就需要去下载这些在本地去启动,操作较为繁琐。此时,我们可以使用Docker Desktop,来搭建我们需要的服务,直接在容器中去启动即可。

一、前言

二、下载 docker desktop

docker官网:https://www.docker.com/

在这里插入图片描述
在这里插入图片描述

三、安装 docker desktop

1、下载并安装

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装完后,会有个对应的小图标。
在这里插入图片描述

2、配置 docker desktop 环境

开启hyper-v 服务:控制面板—程序—程序和功能—启动或关闭windows功能 中 勾选【hyper-v】和【容器】选项。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置完毕后,重启电脑

2、安装 wsl2

我们可以从微软官网下载最新版本的wsl2,然后正常打开。

下面这个链接,访问下载,安装更新:
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

下载完成后直接双击安装即可

在这里插入图片描述

3、打开 docker desktop 的问题

问题一:wsl 2 installation

在这里插入图片描述
这里我们用两步来解决这个问题:

1、我们先去系统里查看一下有没有启用windows的linux子系统,步骤如下:

控制面板->程序->程序和功能

在这里插入图片描述
如果没有的话,我们勾选上,重新启动电脑,打开docker desktop 。

2、如果还是没有解决的话。原因就剩一个了就是:

我们使用的wsl2版本很旧,因此需要手动更新。我们可以根据提示从微软官网下载最新版本的wsl2,然后正常打开。

下面这个链接,访问下载,安装更新:
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

下载完成后直接双击安装即可

在这里插入图片描述
重新启动,运行,发现问题已经解决。

问题二:wsl kernel 版本低

解决方法:以管理员的身份打开控制台(cmd),并执行命令 wsl --update 进行更新

在这里插入图片描述
在这里插入图片描述
如上图中提示,wsl 更新成功后,需要对wsl重启后才会更新生效。可以执行 wsl --shutdown 进行关闭wsl (我执行命令后又重启了一下电脑。)

重启后,再次打开 docker desktop即可

如果电脑windows 10 的企业版的话,以上的安装部署就完毕了, 但我在安装windows 10 家庭版的时候,报错。网上查的意思是说 docker 必须安装在win10 企业版本,如果想安装在家庭版本上,需要如下操作: 打开注册表编辑器,在“ 计算机\hkey_local_machine\software\microsoft\windows nt\currentversion ” 下找到 editionid ,数值数据改为professional即可。

在这里插入图片描述

四、docker desktop 配置镜像源

配置镜像源:打开docker ,找到 设置–docker engine 中,添加如下图所示的镜像源地址。

在这里插入图片描述

{
    "registry-mirrors" : [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://cr.console.aliyun.com",
    "https://mirror.ccs.tencentyun.com"
  ],
  "builder": {
    "gc": {
      "defaultkeepstorage": "20gb",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": true
  }
}

在这里插入图片描述
一直转转转,等一会就可以了,不转了就可以了

在这里插入图片描述

五、disk image location路径的修改

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、验证是否安装成功

在这里插入图片描述

七、使用 docker desktop

1)containers介绍如下

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2)images 介绍如下

在这里插入图片描述
通过镜像启动一个容器:

在这里插入图片描述

在这里插入图片描述

3)search 介绍如下

在这里插入图片描述
在这里插入图片描述

还有一些其他的功能,目前也使用不到,这里先不做记录和讲解了。后续用到了再记录吧;

八、在 cmd 窗体 使用 命令操作 docker

在这里插入图片描述

1、对docker操作

# 启动docker
sudo service docker start
# 重启docker
sudo service docker restart
# 停止docker
sudo service docker stop

2、查看本机所有的镜像

docker images
# 或者
docker image ls

在这里插入图片描述

标签含义
repository镜像所在的仓库名称
tag镜像标签
imageid镜像id
created镜像的创建日期(不是获取该镜像的日期)
size镜像大小

3、拉去镜像(docker pull)

# 官方镜像
docker image pull 镜像名称 
# 或简写为 
docker pull 镜像名称
# 比如
docker pull ubuntu
docker pull ubuntu:16.04

# 个人镜像
docker pull 仓库名称/镜像名称
docker pull xunmi/django

# 第三方仓库拉去
docker pull 第三方仓库地址/仓库名称/镜像名称
docker pull hub.c.163.com/library/mysql:latest
(默认仓库名为library,所有从官方获取镜像相当于`sudo docker image pull library/镜像名称`)

在这里插入图片描述

4、删除镜像(docker rmi)

docker image rm 镜像名或镜像id 或 docker rmi 镜像名或镜像id
docker image rm hello-world
docker rmi 9e64176cd8a2
  • docker rm: 删除一个或多个 容器
  • docker rmi: 删除一个或多个 镜像
  • docker prune: 用来删除不再使用的 docker 对象

在这里插入图片描述

5、加载镜像(docker run)

docker run [可选参数] 镜像名 [向启动容器中传入的命令]
常用可选参数作用
-i表示以《交互模式》运行容器。
-d会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器)。
-t表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
–name为创建的容器命名。(默认会随机给名字,不支持中文字符!!!)
-v表示目录映射关系,即宿主机目录:容器中目录。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-p表示端口映射,即宿主机端口:容器中端口。 比如:-p 8080:80 就是将容器中的80端口,映射到主机中的8080端口
–network=host表示将主机的网络环境映射到容器中,使容器的网络与主机相同。每个 docker 容器都有自己的网络连接空间连接到虚拟 lan。使用此命令则会让容器和主机共享一个网络空间。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6、使用交互式容器

6.1、查看容器(docker ps)

查看容器主要会用到ps命令

# 查看当前所有正在运行的容器
docker ps
# 查看当前所有的容器
docker ps -a
# 使用过滤器(除了name外,常用的还可以指定id:id= 、所有停止的容器:status=exited,正在运行的容器:status=running 等)
docker ps -f name=指定的名字
# 显示2个上次创建的容器(2可以改变)
docker ps -n 2
# 显示最新创建的容器(包括所有状态)
docker ps -l
# 仅显示ip
docker ps -q
 # 显示容器大小
docker ps -s
标签含义
container id镜像id
image创建容器的镜像名称
command默认启动命令(启动时会自动执行)
created创建容器的日期
status当前的状态(启动了多久,多久之前退出等)
ports映射的端口
names容器的名称
size容器大小(使用-s命令参数时才能看到)

在这里插入图片描述

6.2、启动和关闭容器

# 停止容器
docker container stop 容器名或容器id
# 或可简写为
docker stop 容器名或容器id

# 强制关闭容器
docker container kill 容器名或容器id
# 或可简写为
docker kill 容器名或容器id

# 启动容器
docker container start 容器名或容器id
# 或可简写为
docker start 容器名或容器id
  • 如果我们成功启动或者关闭一个容器的话,会返回容器名或者容器id
  • stop和kill的区别: stop是比较优雅的关掉一个容器,类似我们正常退出一个软件,而kill是当一个进程出现意外无法正常关闭的时候,我们强行进行关闭,有点像我们使用任务管理器进行结束进程操作。

在这里插入图片描述

6.3、操作后台容器

操作方法有很多种,这里我们介绍一些比较常用的方法

# 如果我只需要执行简单的一两条命令可以使用docker exec
# 执行单条命令 (-i: 启动并且保留交互式命令行; -t:作用是分配一个虚拟的终端; docker run )
docker exec -it 容器名或容器id 执行的命令
# 比如
docker exec -it kali-test whoami
# 用这种方法,我们还可以启动命令行,根据linux的特性,系统程序会在/bin中,linux中常用的shell有多个,其中大部分用的linux默认的为bash
# 所以我们启动命令可以自行如下命令(除了/bin/bash外,linux一般还会带/bin/sh、/bin/rbash、/bin/dash等,具体区别可以自行百度)
docker exec -it 容器名或容器id /bin/bash
# 比如
docker exec -it kali-test /bin/bash
# 除了exec外还有attach可以使用,但它有个弊端,多终端启动attach后,都会会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。
docker attach 容器名或容器id
# 比如
docker attach kali-test
exec可选参数作用
-d会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器)。
-e设置环境变量
-i表示以《交互模式》运行容器。
-t表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
-u设置用户名和uid。
-w设置容器内的工作目录。

在这里插入图片描述

# nsenter安装步骤
wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz  
tar -xzvf util-linux-2.24.tar.gz  
cd util-linux-2.24/  
./configure --without-ncurses  
make nsenter  
sudo cp nsenter /usr/local/bin  

6.4、删除容器(docker rm)

在这里插入图片描述

# 使用rm删除容器
docker rm 容器名或容器id
# 列如
docker rm docker-test

6.5、容器制作成镜像

我们为什么要把容器制作成镜像?

  • 镜像可以看作为是一种备份,如果我们后期环境出现了问题,可以还原到早期镜像。
  • 镜像便于传播,可以让自己的其他设备或他人的重复利用变得更加简单容易。
# 将容器制作成镜像
docker commit 容器名 镜像名
# 镜像打包备份(打包备份的文件会自动存放在当前命令行的路径下,如果想让保存的文件可以打开,可以加.tar后缀)
docker save -o 保存的文件名 镜像名
# 镜像解压
docker load -i 文件路径/备份文件

我们将打包备份的镜像可以通过网络发送到其他设备上,使用docker镜像解压即可直接使用你的环境。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com