在win10中下载桌面版的docker并在docker中搭建运行基于linux的容器

在win10中下载桌面版的docker

1.背景

在很多时候需要linux系统部署项目,在win10中安装虚拟机并在虚拟机中安装linux系统比较繁琐,可以利用win10自带的hyper-v的虚拟机管理工具,打开该虚拟机管理工具,安装docker,并在docker中安装linux,不仅操作方便,而且是轻量级的,维护方便。

2.安装桌面版的docker

2.1开启hyper-v(这是前提)

控制面板-程序-启动和关闭winds功能-如下窗口,开启hyper-v及hyper-v管理工具和hyper-v平台

勾选适用于linux的windows子系统和虚拟机平台

重启电脑后在任务管理器中查看虚拟化功能是否已开启

2.2安装docker

我这里安装的是桌面版的,下载地址如下:

https://dockerdocs.cn/docker-for-windows/install/index.html

下载后直接安装,默认下一步即可,直到安装完成。

检测你电脑是否安装成功方法,打开命令终端cmd,输入docker -v,如下图

然后可以修改docker的镜像下载地址,这样拉取资源速度会快一些,如下图在docker engine中修改为下面的代码

json 复制代码
{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "debug": false,
  "experimental": false,
  "insecure-registries": [],
  "registry-mirrors": [
    "https://ung2thfc.mirror.aliyuncs.com"
  ]
}

在终端输入命令查看是否有效

复制代码
docker info

出现上图的地址就是我们配置的地址,说明配置生效

也可以试着拉取官方提供的极简镜像hello-world运行来测试安装是否成功

dockerfile 复制代码
docker pull hello-world

然后在docker桌面软件中的images中可以看到刚下载的hello-world资源

创建由hello-world镜像资源构建的docker独立容器

复制代码
docker run -d --name 你想取的容器名称 -it 镜像资源名

执行后,在docker桌面软件中可以看到一个mytest的容器

这里需要注意:-it是非常重要的,必须有,他是告诉docker,要在docker内创建容器,如果没有他,可能出现创建的docker容器无法运行,也就是交互方式运行(进入容器),-d是告诉他可以后台方式运行。

启动docker容器命令

复制代码
docker start docker容器名

如果不清楚现有的docker容器名,可以使用docker ps -a来查看

我这里的hello-world是运行瞬间停止的,不知是不是该镜像不支持运行,后边下载的linux是能正常使用的。

扩展docker一些命令

复制代码
查看正运行的容器   docker ps
查看所有容器      docker ps -a
删除容器(不能删除正运行的容器) docker rm 容器id
停止当前正运行的容器  docker stop 容器id
强制停止容器  docker kill 容器id
显示2条日志  docker logs -tf --tail 2 容器id
显示容器进程  docker top 容器id
显示容器所有信息  docker inspect 容器id

3.在docker中搭建linux环境

3.1在docker中拉取linux镜像,我这里拉取的是ubuntu版

复制代码
docker pull ubuntu

我这之前下载过,可能和第一次下载的界面有些不同

然后创建一个linux搭建的docker容器

复制代码
docker run -d --name mylinux -it ubuntu

进入刚建好的mylinux终端(注意该容器必须先运行,如果没运行,可以用docker start 容器id 来开启)

复制代码
docker attach 容器id

注意,容器id可以不用全写,只要写到能区分出来就行

到这里就说明在docker中安装并启动运行基于linux系统的容器已经完成!

相关推荐
Decay__5 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
贞明电子7 小时前
工业三色报警灯怎么接入项目系统?开关量与RS485控制应用指南
运维·网络·微信公众平台·贞明电子
万联WANFLOW8 小时前
海外网络故障怎么排查?Cloudflare 三季度断网报告解读与 mtr 实战
运维·网络·故障分析
Ruiery10 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
Decay__11 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
江华森12 小时前
数据中心基础设施运维实战:概述与实验环境搭建
运维
迪菲赫尔曼12 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
by2099914 小时前
Linux GCC/G++ 编译与 Makefile 构建
linux·运维·服务器·经验分享
螺丝钉tina14 小时前
[Playwright][08] Upload 模块自动化:如何设计真实业务测试用例?
运维·自动化·测试用例
迪菲赫尔曼14 小时前
【基础篇 12】把环境与源码接起来:检查 GPU,再安装服务器上的项目
运维·服务器·开发语言·人工智能·python·yolo·目标检测