美文网首页docker
Docker简介及安装

Docker简介及安装

作者: 自由如风才是少年的梦 | 来源:发表于2022-01-19 09:20 被阅读0次

    前言

      Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
      Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
      容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。


    一、容器介绍

      容器其实是⼀种沙盒技术。顾名思义,沙盒就是能够像⼀个集装箱⼀样,把你的应用"装"起来的技术。这样,应⽤与应⽤之间,就因为有了边界⽽不⾄于相互⼲扰;⽽被装进集装箱的应⽤,也可以被⽅便地搬来搬去,这其实是 PaaS 最理想的状态。

    1.1、容器简史

      互联网企业生产环境的应用部署所经历的过程,大致可分三个阶段:

    • 物理机部署
    • 虚拟机部署
    • 容器化部署

    1.2、容器的成因

      其⼀,这是技术演进的⼀种创新结果,其⼆,这是⼈们追求⾼效⽣产活动的⼀种⼯具。随着软件开发的发展,相⽐于早期的集中式应⽤部署⽅式,现在的应⽤基本都是采⽤分布式的部署⽅式,⼀个应⽤可能包含多种服务或多个模块,因此多种服务可能部署在多种环境中,如虚拟服务器、公有云、私有云等,由于多种服务之间存在⼀些依赖关系,所以可能存在应⽤在运⾏过程中的动态迁移问题,那这时如何保证不同服务在不同环境中都能平滑的适配,不需要根据环境的不同⽽去进⾏相应的定
    制,就显得尤为重要。

    二、Docker安装

    Docker官方网站: https://www.docker.com/

    1.1、下载Docker

    1、删除已安装的docker,如果未安装可忽略

    [root@localhost]# yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-selinux \
    docker-engine-selinux \
    docker-engine
    

    2、配置阿里云的docker yum源

    [root@localhost]# yum install -y yum-utils device-mapper-persistent-data lvm2 git
    [root@localhost]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

    配置国内加速器,阿里云,按照官方提示进行配置 链接 阿里云

    配置加速器

    3、安装Docker

    查看docker的版本信息
    [root@localhost]# yum list docker-ce --showduplicates
      可安装的软件包
    docker-ce.x86_64                                 17.03.0.ce-1.el7.centos                                 docker-ce-stable 
    docker-ce.x86_64                                 17.03.1.ce-1.el7.centos                                 docker-ce-stable 
    docker-ce.x86_64                                 17.03.2.ce-1.el7.centos                                 docker-ce-stable 
    docker-ce.x86_64                                 17.03.3.ce-1.el7                                        docker-ce-stable 
    docker-ce.x86_64                                 17.06.0.ce-1.el7.centos                                 docker-ce-stable 
    docker-ce.x86_64                                 17.06.1.ce-1.el7.centos                                 docker-ce-stable 
    docker-ce.x86_64                                 17.06.2.ce-1.el7.centos                                 docker-ce-stable
    ...
      
    安装docker最新版
    [root@localhost]# yum -y install docker-ce 
    

    4、启动Docker服务

    [root@localhost]# systemctl enable docker   
    [root@localhost]# systemctl start docke 
    

    5、查看Docker版本及启动状态

    [root@localhost]# docker -v
    Docker version 20.10.2, build 2291f61
    
    [root@localhost]# docker version
    Client: Docker Engine - Community
     Version:           20.10.2
     API version:       1.41
     Go version:        go1.13.15
     Git commit:        2291f61
     Built:             Mon Dec 28 16:17:48 2020
     OS/Arch:           linux/amd64
     Context:           default
     Experimental:      true
    ...
    

    6、查看docker的运行状态

    [root@localhost]# docker info
    Client:
     Context:    default
     Debug Mode: false
     Plugins:
      app: Docker App (Docker Inc., v0.9.1-beta3)
      buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)
    
    Server:
     Containers: 0
      Running: 0
      Paused: 0
      Stopped: 0
     Images: 0
     Server Version: 20.10.2
     Storage Driver: overlay2
      Backing Filesystem: extfs
      Supports d_type: true
      Native Overlay Diff: true
     Logging Driver: json-file
     Cgroup Driver: cgroupfs
     Cgroup Version: 1
    ...
    

    2.2、下载docker镜像

    7、下载官方镜像,已下载nginx镜像为例

    在官方网站查找nginx镜像
    [root@localhost]# docker search nginx
    
    NAME                               DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    nginx                              Official build of Nginx.                        14340     [OK]       
    jwilder/nginx-proxy                Automated Nginx reverse proxy for docker con…   1947                 [OK]
    richarvey/nginx-php-fpm            Container running Nginx + PHP-FPM capable of…   802                  [OK]
    linuxserver/nginx                  An Nginx container, brought to you by LinuxS…   140                  
    jc21/nginx-proxy-manager           Docker container for managing Nginx proxy ho…   135                  
    tiangolo/nginx-rtmp                Docker image with Nginx using the nginx-rtmp…   111                  [OK]
    bitnami/nginx                      Bitnami nginx Docker Image                      94                   [OK]
    alfg/nginx-rtmp                    NGINX, nginx-rtmp-module and FFmpeg from sou…   86                   [OK]
    jlesage/nginx-proxy-manager        Docker container for Nginx Proxy Manager        84                   [OK]
    nginxdemos/hello                   NGINX webserver that serves a simple page co…   65                   [OK]
    nginx/nginx-ingress                NGINX Ingress Controller for Kubernetes         47                   
    privatebin/nginx-fpm-alpine        PrivateBin running on an Nginx, php-fpm & Al…   45                   [OK]
    nginxinc/nginx-unprivileged        Unprivileged NGINX Dockerfiles                  28                   
    
    下载最新版nginx镜像
    [root@localhost]# docker pull nginx   #默认下载最新版 nginx:latest
    nginx                latest    f6d0b4767a6c   12 days ago    133MB
    
    查看本地镜像仓库
    [root@localhost]# docker images  
    mysqlclient          v1.1      8a1cd8bbc24a   4 days ago     39.7MB
    busybox              latest    b97242f89c8a   11 days ago    1.23MB
    redis                latest    6060df96cef3   11 days ago    104MB
    nginx                latest    f6d0b4767a6c   12 days ago    133MB
    php                  7.4-fpm   f5460fa2369d   12 days ago    405MB
    nginx                alpine    629df02b47c8   5 weeks ago    22.3MB
    alpine               latest    389fef711851   5 weeks ago    5.58MB
    centos               latest    300e315adb2f   6 weeks ago    209MB
    mysql/mysql-server   5.7       a9dda627da1f   3 months ago   360MB
    
    启动nginx容器
    [root@localhost]# docker run -itd nginx:latest sh
    fb78d1f1e9e591ba3b6f4290cbdfaf61f8bd99e62af690ec5811b8eb10745d17
    
    查看容器启动状态
    [root@localhost]# docker ps
    CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
    fb78d1f1e9e5   nginx     "/docker-entrypoint.…"   42 seconds ago   Up 41 seconds   80/tcp    vigorous_rhodes
    
    进入nginx容器
    [root@localhost]#  [root@docker ~]# docker exec -it fb78d1f1e9e5 sh
    

    参考文档:

    Docker 的源代码仓库: [https://github.com/moby/moby]
    Docker 常见问题: https://docs.docker.com/engine/faq/
    ☺欢迎一起来学习交流。

    相关文章

      网友评论

        本文标题:Docker简介及安装

        本文链接:https://www.haomeiwen.com/subject/pagkhrtx.html