zoukankan      html  css  js  c++  java
  • 【Docker入门一】docker安装

    Docker学习笔记

    前段时间使用FastAPI模板生成器 https://github.com/tiangolo/full-stack-fastapi-postgresql ,生成项目时,项目是用docker启动的,无奈我自己还不会Docker,项目都启动不起来,真滴难受。
    尽管后面自己仿照Flask,跟着官方文档稍微写了下 https://github.com/CoderCharm/MallAPI 感觉目录组织还行,但是docker想想还是得会,毕竟是主流技术了。

    说了这么多,我自己也要赶紧学起来,每天下班后,坚持学下docker, 记录下笔记。

    Docker简介

    我认为学一个东西或者技能,就要从以下这三个最基本的方面学。

    • 是什么?
      • 本质是什么?和同类产品比有哪些优势?为什么选择学这个不学那个?
    • 怎么用?
      • 基本操作使用? 那个场景适合用?如何和业务搭配优化?如何监控调度?
    • 注意事项?
      • 有哪些坑要踩?稳定性,安全性如何? 莫名其妙的Bug? 有问题怎么解决?

    这三点自己google一下,很多概念性的东西,我不喜欢别人又使用另一种概念解释,说大白话会让人就好理解多了。
    概念看下图示,还是很清楚的,最常见的还有docker和虚拟机的区别。

    还有一点就是学习网络技术,看官方文档,是最权威的,最直接的,很多二手资料,并不一定全对,或者跟新不及时,当然我的个人博客也是如此。

    Docker安装

    我也是按照官网走,所以我的博客,贴了很多官网的链接。唯一区别就是我自己实验过。

    官网 https://docs.docker.com/get-docker/

    Centos7 下安装

    选择Linux发行版本 https://docs.docker.com/engine/install/

    Centos https://docs.docker.com/engine/install/centos/
    安装注意事项:

    • 系统版本必须的是Centos7+稳定版 Archived和Tested版本不支持。
    • centos-extras必须开启(我理解是必须要使用yum 仓库之类的安装)
    1 先卸载docker 防止之前安装失败的
    $ sudo yum remove docker 
                      docker-client 
                      docker-client-latest 
                      docker-common 
                      docker-latest 
                      docker-latest-logrotate 
                      docker-logrotate 
                      docker-engine
    
    2 使用仓库安装
    $ sudo yum install -y yum-utils
    # 默认是设置国外的镜像仓库,不推荐
    $ sudo yum-config-manager 
        --add-repo 
        https://download.docker.com/linux/centos/docker-ce.repo
    
    #推荐使用国内的
    $ sudo yum-config-manager 
        --add-repo 
        https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    # 更新 yum缓存
    yum makecache fast
    
    
    3 安装docker engine
    # 默认是安装最新版的。docker-ce 社区版  ee是企业版 
    $ sudo yum install docker-ce docker-ce-cli containerd.io
    # 安装完之后就可以查看版本
    $ docker version
    
    4 启动docker
    $ sudo systemctl start docker
    
    
    5 Hello World测试
    $ sudo docker run hello-world
    

    输出以下内容就表示安装成功了。

    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    0e03bdcc26d7: Pull complete 
    Digest: sha256:d58e752213a51785838f9eed2b7a498ffa1cb3aa7f946dda11af39286c3db9a9
    Status: Downloaded newer image for hello-world:latest
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    
    To generate this message, Docker took the following steps:
     1. The Docker client contacted the Docker daemon.
     2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
        (amd64)
     3. The Docker daemon created a new container from that image which runs the
        executable that produces the output you are currently reading.
     4. The Docker daemon streamed that output to the Docker client, which sent it
        to your terminal.
    
    To try something more ambitious, you can run an Ubuntu container with:
     $ docker run -it ubuntu bash
    
    Share images, automate workflows, and more with a free Docker ID:
     https://hub.docker.com/
    
    For more examples and ideas, visit:
     https://docs.docker.com/get-started/
    

    hello-world演示包含了很多东西,一开始启动镜像,本地没有找到这个叫hello-world的镜像,就去docke hub公共仓库去找,找到后拉取最后的一个版本,然后启动。
    上面例子引入了镜像image(不要翻译成图片)的概念,后面还有容器container,这是docker最重要的两个概念了。

    卸载docker
    #1. 卸载依赖
    yum remove docker-ce docker-ce-cli containerd.io
    #2. 删除资源
    rm -rf /var/lib/docker
    # /var/lib/docker 是docker的默认工作路径!
    

    Windows10下安装

    win10桌面版安装(个人操作安装失败,以下为失败经验)

    windows的话,我选择安装桌面版。
    打开文档首先就是 What to know before you install。 安装前置条件

    win10 Docker Toolbox

    https://docs.docker.com/toolbox/toolbox_install_windows/
    这个是 Docker Desktop for Windows 装不上的替代方案。
    去github 下载最新的Docker Toolbox.exe执行文件 https://github.com/docker/toolbox/releases
    下载慢可以去镜像网站下 自行搜索

    还是启动不了,不倒腾了,反正也是用Linux系统开发。

    下一步

    下一步就要学习下基本的操作了
    镜像命令 和 容器命令,这些命令很多都是基于Linux命令的,如果有Linux命令基础的话,我想还是很好理解的。

    明天学习再记录!

  • 相关阅读:
    微信小程序开发之普通链接二维码
    微信小程序之使用本地接口开发
    c# partial 分部类和分部方法
    .NET之美 第一部分C#语言基础
    Head First设计模式之命令模式
    Head First设计模式之责任链模式
    Head First设计模式之解释器模式
    Head First设计模式之迭代器模式
    Head First设计模式之中介者模式
    LeetCode 709. To Lower Case
  • 原文地址:https://www.cnblogs.com/CharmCode/p/13269357.html
Copyright © 2011-2022 走看看