zoukankan      html  css  js  c++  java
  • Docker使用笔记记录

    什么是Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

    其实关于docker的介绍,具体的百度百科已经十分清楚。说白了,就是一个虚拟化容器,可以将我们原来的一个应用所需要的环境如mysql,redis,es之类的已经打包成镜像一起发布,这样我们就不用在另一台电脑上面重新配置我们的环境。

    docker的发展历史也很忐忑,有兴趣的可以了解一下。点击跳转

    Docker与虚拟机的区别

    在还没学习之前,我也只知道docker是一个容器,可以帮助我们快捷部署项目,或者就没了。然后在继续简单了解一下,会发现docker也是类似一个虚拟机容器的存在,那么我就疑惑了,docker到底和我们的虚拟机有什么区别呢?

    我们的docker之所以那么火,其实主要是因为它的轻巧。因为我们之前的虚拟机技术,如vmmare和openstack都比较大,我们可能里面一个linux镜像都要好几g,但是我们的容器化技术把所需要的核心环境提取出来,这样我们的容器就会尽可能的小巧,从g的单位就缩小到了m的单位。

    但是大家需要注意,Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。

    Docker文档与安装

    Docker三大核心概念

    docker技术的三大核心概念其实是

    • 镜像(Image)。docker的镜像类似我们Java的class模版,通过一个class模版可以new出多个对象,同样的我们在docker里面可以通过这个镜像可以用来创建多个我们的容器服务。
    • 容器(Container)。docker的容器技术,可以独立的运行一个或者一组应用,这是通过镜像来创建的。
    • 仓库(Repository)。仓库就是用来存放我们的镜像的地方,最常使用的Registry公开服务就是我们的Docker Hub(默认是国外,所以我们如果要使用镜像的话,可以用国内的加速版),也是默认的Registry。

    Docker文档

    关于Docker的入门和使用,docker的官网已经有了非常详细的文档。地址:https://docs.docker.com/get-started/overview/

    Docker安装

    关于docker的安装官网提供了三种方式,Mac,Win,Linux。但是因为我们最终的项目都是要在Linux上面要发布的,所以我们就直接在Linux上面安装使用。打开我们的帮助文档Get Docker就可以看到我们的Docker for Linux。在安装的目录下,我们可以看到docker支持很多的linux系统,这里我以Centos为例。

    然后我们按照文档操作即可。(注意在在使用命令的时候,我们都要用到root权限)

    (1)如果之前安装了docker我们必须先卸载

    所以不管我们安装了都可以去操作一下文档提供的命令。

    sudo yum remove docker 
                      docker-client 
                      docker-client-latest 
                      docker-common 
                      docker-latest 
                      docker-latest-logrotate 
                      docker-logrotate 
                      docker-engine
    

    (2)安装需要的安装包

    yum install -y yum-utils
    

    (3)设置镜像的仓库

    在文档提供了的是国外的镜像地址,我们可以换成国内的阿里云。

    sudo yum-config-manager 
        --add-repo 
        https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  #换成我们的国内阿里云
    

    (4)安装docker相关

    在安装之前我们可以先使用yum makecache fast命令将我们的yum软件包索引进行更新。

    然后我们使用命令进行安装docker

    sudo yum install docker-ce docker-ce-cli containerd.io
    

    (5)启动docker并测试

    在安装完docker后,我们可以使用以下命令进行启动,并使用docker version进行查看安装成功了没

    sudo systemctl start docker
    

    我们可以简单运行一下文档提供的hello-world镜像样例

    sudo docker run hello-world
    

    但是在运行的时候可能不成功,因为我们并没有这个镜像。所以它会自己去从我们的阿里云镜像里面去爬去。

    通过使用docker images也可以发现我们的本地仓库里面的镜像了

    (6)docker卸载

    docker卸载也只需要两个步骤。一个是卸载依赖一个是删除目录,分别执行下面两条命令即可。

    sudo yum remove docker-ce docker-ce-cli containerd.io
    
    sudo rm -rf /var/lib/docker
    

    (7)配置阿里云镜像

    在上面我们之前配置阿里云镜像,但是还是不够快。这里可以登录阿里云,去使用阿里云容器的镜像加速器服务。打开网址https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors后,我们只要登录后就可以看到样例使用。

    image-20210205165510124

    Docker常用命令

    (1)启动docker服务

    service start docker
    

    (2)设置开机自启动

    可以将docker设置为开启自启,这样就不用每次自己手动命令开启。

    sudo systemctl enable docker
    

    (3)拉取镜像

    可以到dockerhub其看自己想要的docker镜像,然后进行拉取。

    docker pull 项目名:版本号
    

    有时候需要指定版本号,(在dockerhub的tag标签下可以查看)不然就会报错,视情况而定。

    Error response from daemon: manifest for 项目名:latest not found: manifest unknown: manifest unknown
    

    (4)运行镜像

    sudo docker run 项目名 
    

    (5)查看容器

    镜像运行之后就会以容器的形式存在,我们下次如果再需要运行就要使用容器的命令。查看docker所有容器

    sudo docker ps -a
    

    (6)启动or关闭容器

    #启动容器
    sudo docker start 容器id  #可以通过上面命令进行查看
    #停止容器
    sudo docker stop 容器id 
    

    (7)(继续补充...)

  • 相关阅读:
    进程状态
    VMware虚拟机的三种联网方法及原理
    关于C++迭代器失效
    头文件:limits.h、float.h
    正则表达式之一:元符号
    MYSQL之批量插入数据库
    PHP之如何判断数字(数字字符串不算)
    使用Process Monitor来得到程序运行参数
    Abusing the C preprocessor
    1+1还是1+1=2?
  • 原文地址:https://www.cnblogs.com/CryFace/p/14643476.html
Copyright © 2011-2022 走看看