zoukankan      html  css  js  c++  java
  • Docker安装 配置

    参考 https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04
    安装 Docker 及初始配置


    注意 如果执行的docker命令的时候 所登录的用户不是root或不在docker组内,需要添加到docker组内,否则会异常

    docker run hello-world
     docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
     See 'docker run --help'.

    有的报

    docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
     See 'docker run --help'.

    解决办法:
    参考https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04
    的第二步
       执行 
    sudo usermod -aG docker tieress

       执行 
    su tieress
      然后要输入密码
    tieress@123

      接下来执行
      

    id -nG
    查看到
        
    tieress sudo docker

       好了 添加上了。
       如果需要添加其他用户 但是不是当前登录的用户 可以执行
      sudo usermod -aG docker 用户名

    测试docker 请在有权限执行docker的用户登陆的状态下
       执行

    docker run hello-world
    便可以看到docker安装了hello-world这个image镜像并成功执行

      有需要查找的镜像可执行
     

     docker search 镜像关键词

      结果里面找到需要的镜像之后 可以通过执行
      

    docker pull 镜像名

       的方式下载到server
       下载好了之后 执行
      docker run 镜像名

       便可以了 【如果没有下载,会自动搜索安装找到的第一个镜像】
       要查看下载了哪些镜像文件 可以执行
      docker images


    测试开启运行一个容器
       执行

    docker run -it ubuntu
      -it是指进入到容器内部interactive的terminal控制台 【如果已经
       启动的可以
    docker start -i 4236201d32f7
    -i后面是 容器id 这样进入控制台】

      执行完上述命令后 控制台会变成
       root@4236201d32f7:/ 这样 @后面是容器的id  如果要删除这个容器的时候 可以通过这个ID来定位

      注意 此时你已经是root用户了 即使你在宿主机【服务器】里是通过tieress登陆的

      可以在不使用sudo的情况下执行命令,如执行:

      apt update

       或者执行下面的命令安装node.js
      apt install nodejs

       安装完nodejs可以通过执行
     
     node -v
    验证安装版本
       然后执行
      exit
    退出控制台 回到宿主机【服务器】控制台


    要管理Docker容器
       执行

    docker ps
    查看活动中的容器
       执行
    docker ps -a
    查看全部容器【包括非活动状态中的容器】

      -a, --all             Show all containers (default shows just running)
       -f, --filter filter   Filter output based on conditions provided
           --format string   Pretty-print containers using a Go template
       -n, --last int        Show n last created containers (includes all states) (default -1)
       -l, --latest          Show the latest created container (includes all states)
           --no-trunc        Don't truncate output
       -q, --quiet           Only display numeric IDs
       -s, --size            Display total file sizes

      执行

    docker start 容器ID
    来启动对应ID的容器
       如
    docker start 4236201d32f7

      执行

    docker stop 容器ID/容器名
    来停止对应的容器
       如执行
    docker stop interesting_shaw


       当确定不需要某个容器的时候,可以执行

     docker rm 容器ID/容器名
    来移除对应的容器

    在容器中 提交对某Docker镜像的更改
      启动了一个Docker镜像后,可以像在虚拟机中一样执行创建,修改,删除文件动作
      所有的更改会且仅会对应用到该容器中。可以启动也可以停止它,一旦通过执行 docker rm
      命令删除它之后,所有的更改都会丢失。

    我们在这个容器【类似虚拟机】中所做的修改如果有价值,可以通过另存为一个新的镜像的方式保存下来。
      前面我们对从repository上下载下来的ubuntu镜像做了一下编辑【安装了一个Node.js】 那么这个容器配置
      就与原始的repository上的不一样了,如果我们以后需要这样的容器,我们可以通过执行提交来保存一个
      新的镜像以后使用

    执行

    docker commit -m "i've added node.js to this container/image" -a "tieress owner li an" 4236201d32f7 hello/test_ubuntu_add_nodejs

       -m 后面就是附注 m就是message的意思
       -a 后面就是作者名 -a就是author的意思
       作者后面就是 container的id
       然后是DockerHub的用户名/你给这个镜像取得名字
       执行完后 这个image会保存在本地

      执行

    docker images
    查看之
      REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
       hello/test_ubuntu_add_nodejs   latest              88b034c80733        3 minutes ago       163MB
       ubuntu                         latest              adafef2e596e        3 days ago          73.9MB
       hello-world                    latest              bf756fb1ae65        6 months ago        13.3kB

      看到没有 size比原始的大了

      这种方式类似于搞了一个虚拟机快照

      不过也可以通过Dockerfile的方式来构建image Dockerfile其实就是类似于.bat文件这种【shell脚本】
       也是包含了很多指令,运行之就会去对应安装下载什么,配置什么,执行其他的操作之类的


    提交本地镜像到DockerHub【或者其他的仓库】,用来分享也好,自己以后用也好。
       对于需要高自己的Docker registry的可以看 https://www.digitalocean.com/community/tutorials/how-to-set-up-a-private-docker-registry-on-ubuntu-14-04
      
       执行

    docker login -u 用户名
    登录Dockerhub 【后面会要求输入密码所以请注册一个】

        注意:如果你的Docker registry的用户名与创建的镜像所附的用户名是不一样的 那需附注一下
         执行

     docker tag 本地镜像用户名/本地镜像名 docker-registry用户名/镜像名

         如
    docker tag sammy/ubuntu-nodejs docker-registry-username/ubuntu-nodejs

       提交执行
        
    docker push hello/test_ubuntu_add_nodejs

       提交完成后可以在Dockerhub中看到
       以后可以执行
      
    docker pull hello/test_ubuntu_add_nodejs
    方式下载这个镜像了

  • 相关阅读:
    [CQOI2017] 小Q的棋盘
    CF75D Big Maximum Sum
    Dockerfile
    docker镜像与容器的导出导入
    ubuntu安装glusterFS
    常用工具网站网址
    国内数据分析平台
    清理系统垃圾
    sql注入笔记
    shopify Liquid语言学习知识点总结
  • 原文地址:https://www.cnblogs.com/dzkjz/p/13282205.html
Copyright © 2011-2022 走看看