zoukankan      html  css  js  c++  java
  • 6.linux之docker安装使用

    一、docker安装


    注:docker架构

      镜像:相当于类,是一个最小root系统文件

     docker –version
     Docker version 18.09.0

                    1.进入docker 目录

            root@Rightsec:~# cd /var/lib/docker
            root@Rightsec:/var/lib/docker# ls
              builder  buildkit  containers  image  network  overlay2  plugins  runtimes  swarm  tmp  trust  volumes

                    2.进入containers,每个序列号都是一个image

            root@Rightsec:/var/lib/docker# cd containers/
            root@Rightsec:/var/lib/docker/containers# ls
              e36d800f663b626aef2c625c48c353555d9b203e13e7e49093d15be2f3a0fb6e

                  3.进入镜像可以看到

             root@Rightsec:/var/lib/docker/containers# cd e36d800f663b626aef2c625c48c353555d9b203e13e7e49093d15be2f3a0fb6e/
             root@Rightsec:/var/lib/docker/containers/e36d800f663b626aef2c625c48c353555d9b203e13e7e49093d15be2f3a0fb6e# ls
               checkpoints                                                                hostconfig.json  mounts
                config.v2.json                                                             hostname         resolv.conf
                e36d800f663b626aef2c625c48c353555d9b203e13e7e49093d15be2f3a0fb6e-json.log  hosts            resolv.conf.hash

                  4.进入image文件夹,里面有repositories.json的文件,详细记录了各镜像的一些信息:

    复制代码
               root@Rightsec:/var/lib/docker# cd image/
               root@Rightsec:/var/lib/docker/image# ls
                 overlay2
               root@Rightsec:/var/lib/docker/image# cd overlay2/
               root@Rightsec:/var/lib/docker/image/overlay2# ls
                 distribution  imagedb  layerdb  repositories.json

      容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等

           仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

        仓库配置:

                    修改配置文件 vi    /etc/docker/daemon.json

                                添加内容:

                                     {
                                          "registry-mirrors": ["https://registry.docker-cn.com"]
                                       }

                 systemctl daemon-reload

                 systemctl restart docker.service

    1.cento7/cento8及以上安装docker,安装方式

    (1)官方安装脚本自动安装           

           curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

          也可以使用国内 daocloud 一键安装命令:   

           curl -sSL https://get.daocloud.io/docker | sh

    (2)手动安装

          1.卸载旧版本

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

           2.安装Docker Engine-Community

              a.使用docker仓库安装

                 在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker

                    设置仓库:

                        yum install -y yum-utils  device-mapper-persistent-data  lvm2

                    官网源:

                        yum-config-manager  --add-repo  https://download.docker.com/linux/centos/docker-ce.repo

                    阿里云:

                        yum-config-manager  --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

                     清华:

                        yum-config-manager  --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

             b.安装Docker Engine-Community

                安装最新版本:                            

                    yum install docker-ce docker-ce-cli containerd.io(若问是否接受GPG,选是)

                    Docker 安装完默认未启动。并且已经创建好 docker 用户组,但该用户组下没有用户

                安装指定版本:(在存储库里列出可用版本再选择安装)

                     yum list docker-ce --showduplicates | sort -r//列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序

                     安装列出的指定版本:                 

                      yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

              c.启动Docker                 

                  systemctl start docker

               d.加入开机自动启动:

                   systemctl enable docker

               e.验证是否启动成功

                  

    二、docker使用


     

         (1)简单应用

                   a. Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。            

                        docker run ubuntu:15.10 /bin/echo "Hello world"

                         以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果

                  b. 运行交互容器:通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:              

                      docker run -i -t ubuntu:15.10 /bin/bash  //会进入ubuntu的系统容器里,可通过exit退出

                  c.启动容器          

                      docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"   //会出现一个容器

                  d.查看运行多少个docker

                      docker ps

                  e. 查看对应容器id的日志

                      docker logs 2b1b7a428627(容器id)

                  f. 停止对应docker

                      docker stop 2b1b7a428627(容器id)

                 g.启动已停止的docker

                       docker start 2b1b7a428627(容器id)

                 h. 登录镜像仓库下载镜像

                       docker login  registry-shdocker-registry.cn-shanghai.cr.aliyuncs.com/dandelion/dandelion_unview:v1.0.0_20201226  -u 用户名 -p 密码

                        其中: registry-shdocker-registry.cn-shanghai.cr.aliyuncs.com/dandelion/dandelion_unview:v1.0.0_20201226是仓库位置,dandelion是镜像删除镜像

                                    docker rm -f dandelion删除镜像,这里用是tuya自己的远程仓库,登录后docker相当于客户端,若不指明也默认登录官网的

                 i.查看本地安装哪些镜像:            

                       docker images

                        结果:                          

                           REPOSITORY                                                                                                                 TAG                  IMAGE ID          CREATED     SIZE
                          registry-shdocker-registry.cn-shanghai.cr.aliyuncs.com/dandelion/dandelion_unview v1.0.0_20201226 0305d9a0f892 3 months ago 141MB

                            TAG:可看到安装的版本

               j.查看镜像可用版本

                      docker search nginx(镜像名)

              k. 登录官网公共仓库:

                      docker login//默认登录官网仓库后会提示输入用户名密码

                      docker search //查看公共仓库有哪些镜像

                      docker logout//退出仓库

                     

     

          (2)docker常见使用命令

                a.如果我们本地没有 ubuntu 镜像,我们可以使用 docker pull 命令来载入 ubuntu 镜像           

                     docker pull ubuntu

               b.启动容器          

                    docker run -it ubuntu /bin/bash//通exit退出后docker就停止

               c.在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。在使用 -d 参数时,

                    容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入       

                  docker run -itd --name ubuntu-test ubuntu /bin/bash //加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec     

                  docker exec -it 243c32535da7 /bin/bash  //进入ubuntu页面

              d.导入导出容器

                    导出本地容器:docker export 1e560fca3906 > ubuntu.tar

            导入容器快照:cat docker/ubuntu.tar | docker import - test/ubuntu:v1(名字)//这种方式导入导出会报错“Error response from daemon: No command specified”,需要带command

                  如下方式导入导出不需要command

                        导出本地容器:将镜像 runoob/ubuntu:v3 生成 my_ubuntu_v3.tar 文档,runoob/ubuntu:v3导出本地docker images查出来的镜像,-o name,表导出名字

                                                    docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3

              导入容器:

                     --input:指定导入文件

                     --quiet:输出信息

                     docker load < my_ubuntu_v3.tar

             e.删除容器:  docker rm -f 1e560fca3906

             f .删除本地一个或多个镜像

                     docker rmi -f name:version

     三、其它


     

                1.https://www.runoob.com/docker/docker-inspect-command.html

               2.docker 的镜像与容器都存储在 /var/lib/docker 下面,那么基于不同的系统又有不同的存储方式,在 ubuntu 下面存储方式为 AUFS;在 Centos 下面存储方式又是 device mapper

     

  • 相关阅读:
    ubuntu 查看cpu核数
    安装pytorch
    杀死用kill id+父进程
    ubuntu 更改目录所有者
    查看cuda版本+安装cuda+安装conda
    挂载新硬盘
    Linux负载过高【10.13】
    C++中c_str()
    为什么C++比python快?
    C++匿名函数
  • 原文地址:https://www.cnblogs.com/Dana-xiong/p/14582550.html
Copyright © 2011-2022 走看看