zoukankan      html  css  js  c++  java
  • Centos7安装Docker

     

    Centos7安装Docker

    查看Linux内核版本
    uname -r
    
    3.10.0-693.11.1.el7.x86_64
    Docker ce支持64位版本Centos7,并且要求内核版本不低于3.10
    如果之前有安装过Docker ce的,可以移出之前的旧版本,使用以下命令。
    sudo yum remove docker 
                      docker-client 
                      docker-client-latest 
                      docker-common 
                      docker-latest 
                      docker-latest-logrotate 
                      docker-logrotate 
                      docker-selinux 
                      docker-engine-selinux 
                      docker-engine
    安装基本的系统工具
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    安装过程中如果出现以下错误,那么就是yum-config-manage这个文件的头的Python版本错误,建议查看自己当前Python版本,在终端输入Python即可查看,Python2.7==》Python2, Python3.5.xx ==》Python3 or Python35,也有可能是更换Python版本代码编译不通过问问题,如果更换Python3那么就要把135行更换掉。
    File "/bin/yum-config-manager", line 135
        except yum.Errors.RepoError, e:
                                   ^
    SyntaxError: invalid syntax
    更换代码135行
    133 try:
    134     opts = yb.doUtilConfigSetup()
    135 except yum.Errors.RepoError as e:
    136     logger.error(str(e))
    137     sys.exit(50)
    还有这种错误
     File "/bin/yum-config-manager", line 159
        print yb.fmtSection('main')
               ^
    SyntaxError: invalid syntax
    给159,160,196,201,222,233,244,271行的print添加()
    159     print(yb.fmtSection('main'))
    160     print(yb.conf.dump())
    239,254,261行的try更换
    239:  except (IOError, OSError, yum.Errors.YumBaseError) as e:
    254:  except yum.Errors.DuplicateRepoError as e:
    261:  except ValueError as e:
    272:  except (IOError, OSError) as e:

    脚本安装

    安装之前必须确保yum包是最新状态

    yum update

    下载、执行安装docker脚本

    下载: curl -fsSl https://get.docker.com -o get-docker.sh
    执行: sudo sh get-docker.sh
    执行完get-docker.sh这个脚本之后会自动添加一个docker.repo源并安装Docker。
    启动docker进程
    sudo systemctl start docker
    测试docker是否安装成功
    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    1b930d010525: Pull complete 
    Digest: sha256:41a65640635299bab090f783209c1e3a3f11934cf7756b09cb2f1e02147c6ed8
    Status: Downloaded newer image for hello-world:latest
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly
    测试完成之后如果出现这个,那就说明docker安装成功了。

    Docker的三大组件

    镜像(image)

    Docker运行容器之前需要本地存在对应的镜像。

    镜像是用来创建Docker容器的。一个镜像可以包含一个完整的操作系统环境和用户需要的其他应用程序,在Docker Hub里面有大量现成的镜像提供下载,Docker的镜像是只读的,一个镜像可以创建多个容器。

    容器(Container)

    Docker利用容器来进行开发,运行应用。

    容器是镜像创建的实列,它可以启动,开始,停止,删除,每个容器都是相互隔离的,保证安全的平台。

    仓库(repository)

    仓库是集中存放镜像文件的地方。

    每个仓库中又包含了多个镜像,每个镜像有不同的标签(TAG)

    获取镜像的命令是   docker pull
    格式:    docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
    
    使用: docker pull ubuntu:18.04    
    
    上列的命令中,拉取镜像的同时,没有给出具体的镜像仓库地址,所以默认去 docker hub 获取镜像, 镜像名称是ubuntu:18.04的镜像,因此将会获取官方镜像 library/ubuntu 仓库中标签为18.04的镜像。 

    获取镜像成功之后,接下来运行镜像。

    在此ubuntu容器就运行起来了,进入了ubuntu系统中。

    参数: 
        docker run         运行容器的命令
        -it                这是两个参数 -i: 交互式操,  -t: 终端
        --rm               容器退出之后随即删除,避免浪费空间,默认情况容器是不会自动删除的需要手动删除。

    列出所有镜像

    docker image ls
    
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    ubuntu              18.04               7698f282e524        2 weeks ago         69.9MB
    hello-world         latest              fce289e99eb9        4 months ago        1.84kB

    参数:
       REPOSITORY:                仓库名称
       TAG:                       标签
       IMAGE ID:                  镜像ID
       CREATED:                   创建时间
       SIZE:                      占用空间
    镜像体积
    docker system df

    虚悬镜像

    <none>               <none>              00285df0df87        5 days ago          342 MB

    这个镜像原本是有镜像名和标签的,原来为mongo:3.2 随着官方镜像维护,发布了新版本之后,重新 docker pull mongo:3.2 的时候,mongo:3.2这个镜像名被转移到了新下载的镜像身上,而旧的镜像上的这个名称则被取消了,从而成为了<none>,除了 docker pull可能会导致成这种情况, docker build 也同样可以导致这种现象,由于新旧镜像同名,旧镜像名称被取消,从而出现仓库名, 标签均为<none>的镜像。这类无标签镜像也被称之为虚悬镜像,可以使用下面的 命令来专门显示这类镜像。

    docker image ls -f dangling=true

    虚悬镜像一般来说是没有用的, 可以删除,使用以下命令删除虚悬镜像。

    docker image prune

    列出指定镜像

     docker image ls ubuntu        # ubuntu镜像名称

    列出特定的某个镜像

    docker image ls ubuntu:18.04    # ubuntu:18.04      镜像名称: 18.04 标签

    过滤出 ubuntu:18.04镜像之后创建的镜像

    docker image ls -f sinc=ubuntu:18.04

    过滤出ubuntu:18.04之前创建的镜像

    docker image ls -f before=ubuntu:18.04

    已镜像ID显示出镜像数量

    docker image ls -q
    
    # 镜像ID
    7698f282e524
    fce289e99eb9

    format模板语法显示指定字段

    docker image ls --format "{{.ID}}: {{.Repository}}"
    
    # 显示
    7698f282e524: ubuntu
    fce289e99eb9: hello-world

    显示标题行,自己定义列

     docker image ls --format "table {{.ID}}	 {{.Repository}}	{{.Tag}}"
    
    # 显示
    IMAGE ID             REPOSITORY         TAG
    7698f282e524         ubuntu             18.04
    fce289e99eb9         hello-world        latest

    删除镜像

    删除之前,镜像必须停止,才可以删除。

     docker image rm 镜像ID

    Docker运行Nginx

     获取nginx镜像
     sudo docker pull nginx
    
     查看当前运行的docker镜像
     docker ps
    
     运行Nginx镜像
     sudo docker run -d -p 8000:80 --name nginx_test nginx

    运行起来之后IP加端口在浏览器打开就可以看到 Welcome to nginx! 那就成功啦!

    进入Docker运行中容器

    docker image ls    # 查看镜像
    docker ps          # 查看运行中的容器
    docker ps -a       # 查看所有容器
    docker exec -it webserver容器名称 bash
  • 相关阅读:
    微信公众账号第三方平台全网发布源码(java)- 实战测试通过
    程序员常访问的国外技术交流网站
    程序员常访问的国外技术交流网站
    程序员都怎么过端午节?
    程序员都怎么过端午节?
    程序员都怎么过端午节?
    WebApi Ajax 跨域请求解决方法(CORS实现)
    WebApi Ajax 跨域请求解决方法(CORS实现)
    WebApi Ajax 跨域请求解决方法(CORS实现)
    那个学完这个小程序创业课程的小白现在月入17万
  • 原文地址:https://www.cnblogs.com/wuyongcong/p/11121446.html
Copyright © 2011-2022 走看看