Docker桌面版安装与使用(windows)

这篇具有很好参考价值的文章主要介绍了Docker桌面版安装与使用(windows)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Docker概念
  • 1、Docker 是一个应用打包、分发、部署的工具
  • 2、镜像Image、容器Container、仓库Repository
    • 镜像:可以理解为软件安装包,可以方便的进行传播和安装。
    • 容器:软件安装后的状态,每个软件运行环境都是独立的、隔离的,称之为容器
    • 仓库:镜像便于传播,而仓库就是专门用来传播这些镜像的地方,他有点类似与Github,或者你可以把他看成一个存放各种镜像的镜像商店
  • 3、打包、分发、部署
    • 打包:就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包
    • 分发:你可以把你打包好的“安装包”上传到一个镜像仓库,其他人可以非常方便的获取和安装
    • 部署:拿着“安装包”就可以一个命令运行起来你的应用,自动模拟出一摸一样的运行环境,不管是在Windows/Mac/Linux
  • 4、Docker部署的优势
    • 常规应用开发部署方式:自己在 Windows 上开发、测试 --> 到 Linux 服务器配置运行环境部署,问题我机器上跑都没问题,怎么到服务器就各种问题了
    • 用 Docker 开发部署流程:自己在 Windows 上开发、测试 --> 打包为 Docker 镜像(可以理解为软件安装包) --> 各种服务器上只需要一个命令部署好,确保了不同机器上跑都是一致的运行环境,不会出现我机器上跑正常,你机器跑就有问题的情况
  • 5、使用docker的简要介绍:
    • 你的项目只需要三步,在当前目录下再加一个dockerfile文件 》》docker build创建镜像 》》docker run运行容器命令后,你的项目就可以运行跑起来了,此时就形成的容器
    • 但是每次部署的话,总是要执行docker build创建镜像 》》 docker run运行容器 会显得很麻烦,那么可以在dockerfile文件里面指定挂载目录,这样可以及时同时生效,省去前面两个命令
    • 一个项目一个容器,两个项目两个容器,两个容器之间如何互相通信,比如前端和后端的服务,此时我们可以创建虚拟网络docker network create test-net ,此时两个容器在执行docker run的时候指定同一个虚拟网络test-net即可互相通信
    • 两个容器:Web 项目 + Redis,如果项目依赖更多的第三方软件,我们需要管理的容器就更加多,每个都要单独配置运行docker build+docker run,指定网络,这样比较麻烦,而docker-compose 把项目的多个服务集合到一起,一键运行,这样就省去了配置虚拟网络,docker-compose里面所有的服务自动使用了同一个网络 ,而docker-compose只需要再创建一个yml文件即可
    • 总结下来:创建一个dockerfile文件+一个yml文件+执行docker-compose up -d 命令即可实现多个容器通信
      docker桌面版,# OtherLearn,docker,windows
  • 6、docker命令介绍:
    docker桌面版,# OtherLearn,docker,windows
二、下载安装
  • 1、下载地址,参考文档1, 参考文档2,参考视频
    docker桌面版,# OtherLearn,docker,windows

  • 2、安装好后,启动报错如下:WSL 2 installation is incomplete. 解决方案参考
    docker桌面版,# OtherLearn,docker,windows

    • 解决步骤1:控制面板->程序->程序和功能,打开如下勾选,如还有问题看步骤2
      docker桌面版,# OtherLearn,docker,windows

    • 解决步骤2:下载新版wsl2,安装新版的wsl2,如果还有问题看步骤3
      docker桌面版,# OtherLearn,docker,windows

    • 解决步骤3:cmd执行 netsh winsock reset,然后重启电脑即可解决
      docker桌面版,# OtherLearn,docker,windows

  • 3、安装完成Docker后,默认每次开机的时候都会自动启动,执行docker -v
    docker桌面版,# OtherLearn,docker,windows

  • 4、镜像加速器下载源设置地址,加一行 "registry-mirrors":["https://mirror.ccs.tencentyun.com","https://registry.docker-cn.com"],
    docker桌面版,# OtherLearn,docker,windows

  • 5、其它镜像地址

镜像加速器 镜像加速器地址
Docker 中国官方镜像 https://registry.docker-cn.com
DaoCloud 镜像站 http://f1361db2.m.daocloud.io
Azure 中国镜像 https://dockerhub.azk8s.cn
科大镜像站 https://docker.mirrors.ustc.edu.cn
阿里云 https://<your_code>.mirror.aliyuncs.com
七牛云 https://reg-mirror.qiniu.com
网易云 https://hub-mirror.c.163.com
腾讯云 https://mirror.ccs.tencentyun.com
三、docker镜像安装与操作
  • 1、查看当前拥有的镜像:docker image ls 或者docker images
    docker桌面版,# OtherLearn,docker,windows
    docker桌面版,# OtherLearn,docker,windows

  • 2、删除镜像:docker image rm 镜像名或镜像ID 或 docker rmi 镜像名或镜像ID,删除镜像的前提是没有使用这个镜像的容器,如果有需要先删除容器,否则会报错
    docker桌面版,# OtherLearn,docker,windows

  • 3、安装镜像:docker pull [名称]:[版本],去docker安装镜像常用搜索地址

    docker pull python:3.7
    docker pull mongo
    docker pull redis
    docker pull mysql
    docker pull nginx
    docker pull node
    docker pull centos
    

    docker桌面版,# OtherLearn,docker,windows

  • 4、运行容器:docker run [可选参数] 镜像名 [向启动容器中传入的命令] ,如果没有镜像,则会先下载镜像
    常用可选参数 作用

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

  • 6、桌面端容器redis的使用流程
    docker桌面版,# OtherLearn,docker,windows
    docker桌面版,# OtherLearn,docker,windows
    docker桌面版,# OtherLearn,docker,windows

四、制作自己的python镜像容器
  • 1、创建一个文件夹docker_all和一个docker_test.py文件首先将依赖包导出,执行pip freeze > requirements.txt

    import sys
    print(sys.version)
    print("Hello, World!")
    

    docker桌面版,# OtherLearn,docker,windows

  • 2、编写dockerfile文件,如下指定自己的项目依赖的镜像,以及在哪个目录文件夹下

    # syntax=docker/dockerfile:1
    # 第一行是解析器指令,始终用版本1语法的最新版本
    # 指定基础镜像
    FROM python:3.7-slim-buster
    # 设置工作目录文件夹
    WORKDIR ./docker_all
    # 复制依赖文件
    COPY requirements.txt requirements.txt
    # 安装依赖
    RUN pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
    # 复制其他的脚本文件
    COPY . .
    #当启动容器时候,执行程序
    CMD ["python", "./docker_test.py"]
    
  • 3、创建镜像,-t:设置镜像名字和版本号,docker build -f [dockerfile文件路径名] -t [创建的镜像名]:[tag] . 注意有一个. ,第一次创建镜像时间有点长稍微等待下

    docker build -f E:\docker_all\dockerfile -t demo_1:v0 .
    
  • 4、查看当前拥有的镜像:docker image ls ,如图镜像已创建成功
    docker桌面版,# OtherLearn,docker,windows

  • 5、启动容器:docker run --name c_test demo_1:v0
    docker桌面版,# OtherLearn,docker,windows

  • 6、保存镜像:docker save -o demo.tar demo_1:v0
    docker桌面版,# OtherLearn,docker,windows

  • 7、删除镜像:docker rmi 镜像id ,或者到桌面版删除镜像
    docker桌面版,# OtherLearn,docker,windows

  • 8、加载打包好的jar包:docker load -i demo.tar

五、目录挂载
  • 1、使用 Docker 运行后,我们改了项目代码不会立刻生效,如下每次都需要重新build和run,很麻烦

    # build:docker build -f E:\docker_all\dockerfile -t demo_1:v0 .
    # 未挂载:docker run --name c_test demo_1:v0  
    # 挂载:docker run --name a_test  -v E:\docker_all:/docker_all -d demo_1:v0
    

    docker桌面版,# OtherLearn,docker,windows

  • 2、常见的三种挂载方式:

    • bind mount 方式用绝对路径 -v E:\docker_all:/docker_all:直接把宿主机目录映射到容器内,适合挂代码目录和配置文件。可挂到多个容器上;
    • volume 方式,只需要一个名字 -v db-data:/app: 由容器创建和管理,创建在宿主机,所以删除容器不会丢失,官方推荐,更高效,Linux 文件系统,适合存储数据库数据。可挂到多个容器上
    • tmpfs mount 适合存储临时文件,存宿主机内存中。不可多容器共享。
  • 3、执行命令进行挂载,还是按前面的案例, docker run --name a_test -v E:\docker_all:/docker_all -d demo_1:v0 ,然后打开桌面docker的容器点击,查看Inspect里面的Mounts,路径挂载成功,此时你修改自己本地的代码,容器的代码也会同时跟着修改
    docker桌面版,# OtherLearn,docker,windows
    docker桌面版,# OtherLearn,docker,windows
    docker桌面版,# OtherLearn,docker,windows

  • 4、重启容器,尝试运行容器,发现结果已改变,说明挂载成功
    docker桌面版,# OtherLearn,docker,windows
    docker桌面版,# OtherLearn,docker,windows

六、多容器通信
  • 1、创建虚拟网络:要想多容器之间互通,从 Web 容器访问 Redis 容器,我们只需要把他们放到同个网络中就可以了
    # 创建一个名为test-net的网络
    docker network create test-net
    # 运行 Redis 在 test-net 网络中,别名redis
    docker run -d --name redis --network test-net --network-alias redis redis:latest
    # 修改python的redis连接地址 
    r = StrictRedis(host='redis', port=6379, db=0, password=None)
    # 运行 Web 项目,使用同个网络
    docker run -p 8011:8011 --name test -v E:\docker_all:/docker_all --network test-net -d demo_1:v0
    
  • 2、新的镜像容器尝试,先没有连接redis,后面设置redis连接测试
    docker桌面版,# OtherLearn,docker,windows
  • 2.1、python文件
    # -*- coding: utf-8 -*-
    """
    @Time : 2022/12/4
    @Author: Shirmay
    @Blog: https://blog.csdn.net/weixin_43411585/
    @公众号: 逆向OneByOne
    uvicorn docker_web:app --reload  --host 127.0.0.1 --port 8011
    """
    import uvicorn
    from fastapi import FastAPI
    from redis import StrictRedis
    app = FastAPI()
    
    
    @app.get("/{_word}")
    def index(_word):
        """http://127.0.0.1:8011/user"""
        print("web_return", _word)
        # r = StrictRedis(host='redis', port=6379, db=0, password=None)
        # r.rpush('web_name', _word)
        # print("redis_llen:", r.llen('web_name'))
        return _word
    
    
    if __name__ == '__main__':
        uvicorn.run("docker_web:app", host='0.0.0.0', port=8011, reload=True)
    
    
  • 2.2、dockerfile文件
    # syntax=docker/dockerfile:1
    # 第一行是解析器指令,始终用版本1语法的最新版本
    # 基础镜像
    FROM python:3.7-slim-buster
    # 设置工作目录文件夹
    WORKDIR ./docker_all
    # 复制依赖文件
    COPY requirements.txt requirements.txt
    # 安装依赖
    RUN /usr/local/bin/python -m pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple/
    RUN pip install uvicorn -i https://mirrors.aliyun.com/pypi/simple/
    RUN pip install fastapi -i https://mirrors.aliyun.com/pypi/simple/
    RUN pip install redis -i https://mirrors.aliyun.com/pypi/simple/
    # RUN pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
    # 复制其他的脚本文件
    COPY . .
    #当启动容器时候,执行程序
    CMD ["python", "./docker_web.py"]
    
  • 3、执行build、run命令,然后打开http://localhost:8011/aa ,发现可以正常访问
    # 1、构建镜像并挂载
    docker build -f E:\docker_all\dockerfile -t demo_2:v0 .
    docker run --name d_test -p 8011:8011 -v E:\docker_all:/docker_all -d demo_2:v0	
    # 2、然后可以浏览器打开 http://localhost:8011/aa 测试看看
    # 3、下载redis
    docker pull redis
    # 4、设置网络
    docker network create test-net
    docker run -d --name redis_net --network test-net --network-alias redis redis:latest
    # 5、修改python代码以及redis连接地址 
    @app.get("/{_word}")
    def index(_word):
        """http://127.0.0.1:8011/user"""
        print("web_return", _word)
        r = StrictRedis(host='redis_net', port=6379, db=0, password=None)
        r.rpush('web_name', _word)
        print("redis_llen:", r.llen('web_name'))
        return f"{r.llen('web_name')}_{_word}"
    # 6、运行 Web 项目,使用同个网络
    docker run -p 8012:8011 --name test2 -v E:\docker_all:/docker_all --network test-net -d demo_2:v0
    # 7、再次浏览器打开 http://localhost:8011/aa 测试看看
    
    docker桌面版,# OtherLearn,docker,windows
七、Docker-Compose管理多个容器运行
  • 1、在目录六里面我们运行了两个容器:Web 项目 + Redis,如果项目依赖更多的第三方软件,我们需要管理的容器就更加多,每个都要单独配置运行,指定网络,这样比较麻烦,而docker-compose 把项目的多个服务集合到一起,一键运行

  • 2、如果安装的是桌面版,则已经包含了docker-compose,否则需要单独安装,执行docker-compose
    docker桌面版,# OtherLearn,docker,windows

  • 3、编写一个docker-compose.yml文件,描述依赖哪些服务,这里标记了两个服务,一个是app的服务,一个是redis的服务 ; 在docker-compose.yml 文件所在目录,执行:docker-compose up -d就可以跑起来了

    version: "3.7"
    
    services:  # app服务和redis服务
      app:  # 服务名字app
        build: ./  # 直接从当前目录build
        ports:
          - 9011:8011
        volumes:
          - ./:/docker_all  # 挂载目录,把当前目录挂载到/docker_all这个目录下
        environment:
          - TZ=Asia/Shanghai
    
      redis:  # 服务名字redis
        image: redis:5.0.13
        volumes:
          - redis:/data
        environment:
          - TZ=Asia/Shanghai
    
    volumes:
      redis:
    
    

    docker桌面版,# OtherLearn,docker,windows
    docker桌面版,# OtherLearn,docker,windows

  • 4、docker-compose其它命令

    • 在后台运行只需要加一个 -d 参数:docker-compose up -d
    • 查看当前多个服务运行状态:docker-compose ps
    • 停止运行:docker-compose stop
    • 重启:docker-compose restart
    • 重启单个服务:docker-compose restart service-name
    • 进入容器命令行:docker-compose exec service-name sh
    • 查看容器运行log:docker-compose logs [service-name]
八、发布和部署
  • 镜像仓库用来存储我们 build 出来的“安装包”,Docker 官方提供了一个镜像库,里面包含了大量镜像,基本各种软件所需依赖都有,要什么直接上去搜索
  • 参考文档
  • 注册官方的docker镜像账号并登录 ,然后选择创建仓库,之后我们build好的镜像就可以上传到这个仓库里面
    docker桌面版,# OtherLearn,docker,windows
    docker桌面版,# OtherLearn,docker,windows
    docker桌面版,# OtherLearn,docker,windows
  • 然后到命令行执行如下
    docker build -f E:\docker_all\dockerfile -t test:v1 .
    docker login -u shirmay1
    docker tag test:v1 shirmay1/test:v1
    docker push shirmay1/test:v1
    docker run -dp 8011:8011 shirmay1/test:v1
    然后打开http://localhost:8011/bb 正常返回
    
    docker桌面版,# OtherLearn,docker,windows

docker桌面版,# OtherLearn,docker,windows
docker桌面版,# OtherLearn,docker,windows

docker桌面版,# OtherLearn,docker,windows
docker桌面版,# OtherLearn,docker,windows

docker桌面版,# OtherLearn,docker,windows文章来源地址https://www.toymoban.com/news/detail-805440.html

  • 阿里云容器托管 docker 官方的镜像托管有时候上传和下载都太慢了,如果你想要更快的速度,可以使用阿里云的免费镜像托管登录 阿里云 阿里云 , 然后搜容器创建仓库使用
九、备份数据迁移
  • 参考文档

到了这里,关于Docker桌面版安装与使用(windows)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows 安装docker使用教程

    一、win10上安装docker 注册docker账号 配置虚拟化 启用 bios 虚拟化,是否已启用可以通过任务管理器查看 如果没有启动请看,否则可以直接跳到2开启 Hyper-V进行后续操作: irtualization Technology(VT),中文译为虚拟化技术,英特尔(Intel)和AMD的大部分CPU均支持此技术,名称分别为VT-

    2024年02月02日
    浏览(34)
  • Docker详解,windows上安装与使用

    Hi I’m Shendi Docker详解,windows上安装与使用 Docker 容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了docker引擎的服务器上(包括流行的Linux机器、windows机器),也可以实现虚拟化。容器是完全

    2024年02月07日
    浏览(25)
  • windows10/11安装和使用docker

            最近在linux服务器上使用docker安装软件很方便快捷,但是linux服务器是公司的需要连vpn才行,不太方便,就想着在自己windows电脑上装一个docker玩玩(主要是方便,安装mysql什么的几个命令行就完事儿),当然大家电脑配置够用的话也可以在自己电脑上安装linux虚拟机

    2024年02月21日
    浏览(37)
  • Docker Desktop 安装和使用 (Windows)

    下载地址 Download Docker Desktop | Docker 程序默认自动安装在C盘,如果想自定义盘符安装,需要在安装前 删除如下目录 C:Program FilesDocker 在D盘新建目录 D:Program FilesDocker 以管理员身份运行cmd (Win+r 输入 cmd Ctrl+Shift+Enter) 在cmd中执行如下命令 mklink /j \\\"C:Program FilesDocker\\\" \\\"D:Program F

    2024年02月12日
    浏览(60)
  • Docker容器—Windows下的安装与使用

    1.1 先决条件 Docker自身要求 Docker 并非是一个通用的容器工具,它 依赖于已存在并运行的 Linux 内核环境 。 Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。 因此,Docker 必须部署在 Linux 内核的系统上。如果W

    2024年02月03日
    浏览(56)
  • 二、Docker安装及使用教程(Windows版)

    下载地址:https://docs.docker.com/desktop/install/windows-install/ 双击下载的exe文件,都选择使用默认设置,等待安装完成即可。 参考菜鸟教程 Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10。这是 Docker Desktop for Windows 所使用的虚拟机。 注意:这个虚拟机一旦

    2024年02月09日
    浏览(46)
  • Docker在Windows下的安装及使用

    在Windows上安装Docker时,可以选择使用不同的后端。 其中两个常见的选择是:WSL 2(Windows Subsystem for Linux 2)和 Hyper-V 后端。此外,还可以选择使用Windows容器。 三者的区别了解即可,推荐用WSL 2,因为虚拟机太重了…懂的都懂。 1. WSL 2 后端: 使用WSL 2后端时,Docker将与WSL 2集成

    2024年02月02日
    浏览(29)
  • Windows使用docker desktop 安装kafka、zookeeper集群

    参考文章:http://t.csdn.cn/TtTYI https://blog.csdn.net/u010416101/article/details/122803105?spm=1001.2014.3001.5501 准备工作: ​ 在开始新建集群之前,新建好文件夹,用来挂载kafka、zookeeper数据,如下: zookeeper文件夹 D:softdockerzookeeperzoo1data D:softdockerzookeeperzoo1datalog D:softdockerzookeeperzoo

    2024年02月14日
    浏览(45)
  • docker安装并使用国内源(Linux、Windows、macOS)

    Windows系统安装Docker并配置国内源 安装 Docker Desktop : 访问Docker官网(https://www.docker.com/products/docker-desktop)下载适用于Windows的Docker Desktop安装包并安装。 配置国内镜像源 : 在Docker Desktop中点击顶部菜单栏的“ whale icon - Preferences - Daemon”(Windows旧版本可能是“Settings”)。 在

    2024年04月22日
    浏览(34)
  • 在 Ubuntu 上安装 Docker 桌面

    要成功安装 Docker Desktop,您必须: 满足系统要求 拥有 64 位版本的 Ubuntu Jammy Jellyfish 22.04 (LTS) 或 Ubuntu Impish Indri 21.10。 对于非 Gnome 桌面环境,必须安装 gnome-terminal: 更新 apt 包索引: 下载docker desktop, 下载 问题: 正在读取软件包列表… 完成 正在分析软件包的依赖关系树 正

    2024年02月13日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包