zoukankan      html  css  js  c++  java
  • Linux下Docker的安装和使用

    Docker基本概念

    仓库(Repository):用来保存镜像 Docker Registry
    镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。
    容器(Container):镜像(Image)和容器(Container)的关系,
           镜像是静态的定义,容器是镜像运行时的实体。
           容器可以被创建、启动、停止、删除、暂停等。  
    	安装的:Docker 主机(Host)  Docker Machine  
    	使用的 Docker 客户端(Client)	
    

    安装的Docker需要的

     docker 
     nvidia-docker
     需要提前确认GPU的支持
    

    Docker的使用

     docker images : 列出本地镜像 
     使用 docker run 命令来在容器内运行一个应用程序
     docker stats --help  帮助系统
     -- docker 命令来查看到 Docker 客户端的所有命令选项
     -- Docker 公共仓库  Docker Hub  docker search centos
     -- Docker 私有仓库
    

    Docker容器状态

     created(已创建)  restarting(重启中)
     running 或 Up(运行中)
     removing(迁移中)
     paused(暂停)
     exited(停止)
     dead(死亡)
    -- 启动或者关闭
    sudo systemctl start docker
    sudo systemctl stop docker
    sudo systemctl restart docker
    

    Docker常用命令

     查看docker是否安装成功  docker version
    -- 查看镜像   sudo docker images
    -- 查看容器   sudo docker ps -a
    ## cd docker_images/
    sudo docker save -o ufoy.tar ufoy-docker
    sudo docker load -i ufoy.tar             #  docker load : 导入使用 docker save 命令导出的镜像。 --input , -i : 指定导入的文件	
    sudo docker inspect *********
    sudo docker history *********
       说明:
           docker inspect 用于查看docker对象的底层基础信息。
    	   包括容器的id、创建时间、运行状态、启动参数、目录挂载、网路配置等等。
    	   另外,该命令也可以用来查看docker镜像的信息。
     sudo docker run --runtime=nvidia  
     sudo nvidia-docker start "***
     sudo nvidia-docker exec -it  "***"  /bin/bash
     -- docker exec 进入容器内部
     
    
     ##停止和删除
     docker stop  你的_CONTAINER ID
     docker rm    你的CONTAINER_ID 
     
    使用docker commit命令制作docker镜像
       docker history命令用来显示镜像创建的历史记录信息-再现完整构建命令
       
       docker commit 命令主要功能是把当前容器提交打包为镜像
       以使用docker commit构建镜像,但是推荐使用 Dockerfile 构建镜像(构建指令和设置指令)
    # sudo docker info
    
     其他命令和说明
         docker tag
    	 Dockerfile 的指令每执行一次都会在 docker 上新建一层。
    	    指令:  COPY  ADD  CMD  ENTRYPOINT  ENV  ARG  VOLUME  EXPOSE  WORKDIR
    

    制作Docker镜像并推送到镜像仓

    容器引擎 docker 
    制作容器镜像:镜像(Image)
       Dockerfile是一个文本文件,其内包含了一条条的指令(Instruction),
         每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建
    	   Dockerfile指令介绍如下。
            FROM语句:表示使用nginx镜像作为基础镜像,一个Dockerfile中FROM是必备的指令,并且必须是第一条指令。
            RUN语句:格式为RUN <命令>,表示执行echo命令,在显示器中显示一段“Hello, SWR!”的文字。
    	 vim Dockerfile
    	docker build
    镜像库管理
    Docker搭建带有访问认证的私有仓库
           拉取镜像registry(仓库)和registry-web(用于访问仓库的UI界面)
    	   下载 docker-compose
    	   创建几个目录,用于存放配置文件和作为私有仓库的镜像存储目录
    	   设置配置文件
    	   启动容器 docker-compose up -d
    	   镜像运行情况:docker ps | grep registry
    登录镜像仓库。
        docker login -u [区域项目名]@[AK] -p [登录密钥] [镜像仓库地址]
        其中,区域项目名和镜像仓库地址在1中获取,AK在2中获取,登录密钥为3的执行结果
    	# 登录私有镜像仓库 registry
    	docker Login 100.10.10.12:8000   # 测试账号test 密码 aTtest123@
    	docker login -u test -p Ttest123@
    	相关认证信息在: $HOME/.docker/config.json 文件中
    	 Registry的登陆密码是在容器镜像服务的密码。 Docker 会将 token 存储在 ~/.docker/config.json 文件中,从而作为拉取私有镜像的凭证
    上传镜像:不同用户分配相应的访问权限(读取、编辑、管理) 镜像不包含任何动态数据
         docker tag 2048-demo:v1 swr.cn-north-1.myhuaweicloud.com/group/2048-demo:v1
         docker push [镜像仓库地址]/[组织名称]/[镜像名称:版本名称]	
         制作镜像压缩包: docker save [OPTIONS] IMAGE [IMAGE...]
    

    Linux系统

    01.ssh
       ssh -p 20 user@host
       ssh-keygen生成一个自己的公钥  新生成两个文件:id_rsa.pub 和 id_rsa 前者是你的公钥,后者是你的私钥
       公钥传送到远程主机host上面:
      $ ssh-copy-id user@host
    02.scp  file_source file_target 
       -r: 递归复制整个目录
     ##本地推远程
       scp /home/snn_id/docker.sh test_id@100.100.100.100:/home/test_id/
       scp -r snn_id@10.10.10.10:/home/ss_id/docker.sh /home/test_id/
    03.Linux tee命令用于读取标准输入的数据,并将其内容输出成文件
       sudo tee /etc/docker/daemon.json <<EOF
       {
           "runtimes": {
               "nvidia": {
                   "path": "/usr/bin/nvidia-container-runtime",
                   "runtimeArgs": []
               }
           }
       }
       EOF
       其中: <<EOF,以EOF输入字符为标准输入结束
       命令tee与重定向的区别
     重定向,是将读取的内容输出到指定文件中,在屏幕上并不显示
     命令tee,在屏幕上显示的同时,将读取的内容也重定向到指定文件中
        类似
         sed 's//home/ballchang/下载/hadoop3/jdk//usr/lib/jvm/java-1.8.0-openjdk-amd64/' /home/hadoop/hadoop-env.sh
             # -i :直接修改读取的文件内容,而不是输出到终端
         sed -i 's//home/ballchang/下载/hadoop3/jdk//usr/lib/jvm/java-1.8.0-openjdk-amd64/' /home/hadoop/hadoop-env.sh
    
        sudo pkill -SIGHUP dockerd    ps kill
    04.添加软件包存储库
        sudo apt-key add -
    	distribution
    	
    	Advanced Packaging Tool(apt)是Linux下的一款安装包管理工具
    	   APT使用一个文件列出可获得软件包的镜像站点地址,这个文件就是/etc/apt/sources.list
    	   格式如下: deb [web或ftp地址] [发行版名字] [main/contrib/non-free]
    	   sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
           sudo apt-get update
    	   确保软件包列表是最新的:apt-get update
      
    05.sudo usermod -aG sudo your_name
    

    参考

     nvidia-container-runtime  https://github.com/nvidia/nvidia-container-runtime#docker-engine-setup
     【Docker】Ubuntu16.04安装docker  https://blog.csdn.net/heiheiya/article/details/102820157
     【Docker】Ubuntu16.04安装nvidia-docker2 https://blog.csdn.net/heiheiya/article/details/102834222
     【Docker】nvdia-docker2 docker-ce  https://blog.csdn.net/heiheiya/article/details/102834703
  • 相关阅读:
    ASP.NET CORE3.0 API Swagger+IdentityServer4授权验证
    Ubuntu16.04安装RabbitMq并设置用户
    使用sql实现表90度旋转(矩阵转置)
    HDWiKi新架设网站打开慢原因排查1.4秒→0.03秒
    手机端网页设置了csswidth:100%,但不能显示完整的问题
    SQL Server 2008 收缩日志
    MSSQL查看一个数据库中所有表的行数
    那就简单说说这个服务器吧,题外话。
    win7单独安装php
    css兼容写法
  • 原文地址:https://www.cnblogs.com/ytwang/p/14610005.html
Copyright © 2011-2022 走看看