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

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

Linux下Docker的安装和使用

上一篇:【转载】RESTful API 设计指南


下一篇:linux(CentOS7)下ntp时间同步配置步骤