1. https://yeasy.gitbooks.io/docker_practice/content/image/dockerfile/expose.html docker practice 资料
  2. -----------------------------------------------
  3. 创建及运行对应的容器
  4. NVIDIAGPU,需要使用nvidia-docker替换docker执行
  5. -----------------------------------------------
  6. sudo systemctl start docker 启动docker
  7. sudo docker run hello-world 测试是否安装成功
  8. docker system df 查看镜像、容器、数据卷所占用的空间
  9. docker image ls -a
  10. docker pull ubuntu:16.04 下载镜像
  11. docker image ls 列出已经下载下来的镜像
  12. docker ps -a ,容器exited状态下,可以通过此命令查看对应的ID
  13. docker image ls -f dangling=true 查看虚悬镜像
  14. docker image prune 删除虚悬镜像
  15. docker image rm 镜像ID 删除镜像
  16. docker volume rm containerID 删除对应的容器及对应的卷
  17.  
  18. ----------------------------------------------
  19. docker 镜像保存及加载
  20. ----------------------------------------------
  21. docker commit <container-id> <image-name> #先保存container环境到的镜像image-name下,然后save保存后的镜像
  22. docker save <-o save-name.tar> <image-name> #保存到tar文件后,可以删除这个commit的image-name镜像
  23. docker load -i to-loaded-image.tar
  24. docker tag imageID REPOSITORYNewName:TAGNewName 修改image镜像的名字,原来的老名字是不变的,只是重新取了一个名字而已,所以也可以删除
  25. ----------------------------------------------
  26. image中启动container,操作容器,进入容器,
  27. 如果是NVIDIA需要使用nvidia-docker
  28. ----------------------------------------------
  29. 1docker run -dit --shm-size 8G -P -p 10022:22 -e PASSWORD=<password> --name containerName --volume /home/ubuntu/github:/workspace/github ImageName
  30. docker run -dit -P ImageName ,通过ImageName或者imageID启动创建容器,
  31. -P,--publish-all=false 指定容器暴露的端口,会自动随机映射 EXPOSE 的端口,
  32. 或者-p 10022:22 --publish=[] 指定容器暴露的端口,映射自己设置的端口号10022docker22号端口号,创建完自己的docker
  33. 然后安装apt-get install openssh-client openssh-serverpasswd设置密码,允许root登录权限 /etc/ssh/sshd_config 调整PermitRootLogin参数值为yesservice ssh restart重启生效;
  34. 下次登录这个docker服务器,可以直接使用ssh -p 10022 root@ip 登录,这里的端口号要和创建docker映射的端口号一致
  35. -i, --interactive=false 打开STDIN,用于控制台交互;
  36. -t, --tty=false 分配tty设备,该可以支持终端登录,默认为false
  37. --rm=false 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)
  38. --volume 会加载主机的绝对路径/home/ubuntu/github目录到容器的/workspace/github目录,也可以挂载对应的文件,这种数据卷独立于容器,Docker 不会在容器被删除后
  39. 自动删除,所以在删除对应的容器的时候,添加上volume参数,也删除对应的卷,不然很占用无用的空间docker volume rm containerID,但是源目录一定得是绝对路径
  40. --name 给创建的容器命名
  41. --net host创建和host一致IP的容器
  42. 2docker container ls 查看刚才开启的容器,
  43. 3, docker start containerID 启动容器,包括可以启动已经退出过的容器
  44. 4docker exec -it ContainerID bash 运行容器,推荐使用exec方式,因为如果从这个 stdin exit,不会导致容器的停止
  45. 只用 -i 参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。
  46. -i -t 参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符。如果使用 -d 参数时,容器启动后会进入后台,
  47. 6docker attach containerID 也可以进入对应的容器,但是在stdinexit后,容器会停止,慎用,5docker inspect SannyTest 查看容器的相关
  48. 7 docker restart $CONTAINERID 重新启动容器
  49. 8,临时退出一个正在交互的容器的终端,而不终止它:
  50. Ctrl-p Ctrl-q 。如果按 Ctrl-c 往往会让容器内应用进程终止,进而会终止容器
  51. --------------------------------------------
  52. 使用 Dockerfile 定制镜像:
  53. --------------------------------------------
  54. 使用Dockerfile构建镜像:在Dockerfile所在的目录运行“docker build -t sanny:v1 ."
  55. Dockerfile文件书写例如:
  56. FROM nvidia/cuda:8.0-cudnn6-devel-ubuntu16.04 #继承的父容器
  57. MAINTAINER sanny #作者
  58. RUN apt-get update && apt-get install -y --no-install-recommends \
  59. build-essential \
  60. cmake \
  61. tmux \
  62. vim \
  63. git \
  64. wget \
  65. curl \
  66. ca-certificates \
  67. libjpeg-dev \
  68. libpng-dev \
  69. libatlas-base-dev \
  70. libboost-all-dev \
  71. libgflags-dev \
  72. libgoogle-glog-dev \
  73. libhdf5-serial-dev \
  74. libleveldb-dev \
  75. liblmdb-dev \
  76. libopencv-dev \
  77. libprotobuf-dev \
  78. libsnappy-dev \
  79. protobuf-compiler \
  80. python-dev \
  81. python-numpy \
  82. python-pip \
  83. python-setuptools \
  84. python-scipy && \
  85. rm -rf /var/lib/apt/lists/* \
  86. && echo "root:root" | chpasswd #设置密码
  87. EXPOSE 22
  88. #EXPOSE 声明端口,详见docker_practice P90
  89. # 格式为 EXPOSE <端口1> [<端口2>...]。
  90. #在 Dockerfile 中写入这样的声明有两个好处,一个是帮助镜像使用者理解这个镜像服务的守护端口,
  91. # 以方便配置映射;另一个用处则是在运行时使用随机端口映射时,也就是 docker run -P 时,会自动随机映射 EXPOSE 的端口
  92. CMD /etc/init.d/nginx start #启动服务
  93. WORKDIR /workspace
  94. bash界面输出中文乱码,添加中文的支持:
  95. locale -a 查看中文支持情况,apt-get install language-pack-zh-hans,然后在/etc/bash.bashrc 添加 export LC_ALL='zh_CN.UTF-8', source bash.bashrc,然后需要重启nvidia-docker restart containerID
  96. docker exec -it CONTAINER env LANG=C.UTF-8 bash
  97. 添加可视化远程界面:使用安装docker vnc
  98. 将docker权限添加给普通用户
  99. sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
  100. newgrp docker #更新用户组
  101. --------------------------------------------------
  102. 将新的container修改的东西,重新commit到对应的image
  103. 虽然新制作了对应的image,但是上一层的image没法删除
  104. --------------------------------------------------
  105. 1,[mydocker@test ~]$ docker ps
  106. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  107. 96621f37028c 0ef2e08ed3fa "/bin/bash" 3 minutes ago Up 3 minutes thirsty_torvalds
  108. 2,然后:docker commit 96621f37028c 0ef2e08ed3fa
  109. 3,docker ps -a 查看新的image

Docker 使用及常用命令的更多相关文章

  1. Docker 入门指南——常用命令

    前面已经介绍了 Docker 的安装方式,本文总结一下使用 Docker 的基本概念和常用命令. 基本概念 镜像 Image 镜像是一些打包好的已有的环境,可以被用来启动和创建容器 容器 Contai ...

  2. docker 安装与常用命令与常用容器(containers)环境

    注意区别 container 与 image 的关系,container 的建立需要 image 的承载,也即 container 依赖 image,停止并删除了 container 并不会删除 im ...

  3. Docker系列之常用命令操作手册

    目录 1.安装虚拟机 2.安装Docker 3.Docker镜像操作 4.Docker容器操作 Docker系列之常用命令操作手册 继上一篇博客Docker系列之原理简单介绍之后,本博客对常用的Doc ...

  4. Docker基础和常用命令

    Docker基础和常用命令 一,Docker 简介 1.1,什么是 Docker Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,nam ...

  5. Docker入门之常用命令

    写在前面 细数当前最流行的技术莫过于容器化和人工智能了,而容器化技术能有今天的热度,Docker可谓功不可没. 让我们一起来回顾一下Docker 是什么? 是一种虚拟化技术 能够将应用程序自动部署到容 ...

  6. Docker三剑客之常用命令

    一.docker-machine 命令 说明 docker-machine create 创建一个 Docker 主机(常用-d virtualbox) docker-machine ls 查看所有的 ...

  7. Docker安装和常用命令

    Docker安装 Docker的安装可以参考 https://docs.docker.com/ 下面的 Get Docker / Docker CE / Linux, 需要关注的主要是CentOS和U ...

  8. Docker笔记:常用命令汇总

    Docker常用命令汇总 启动服务 [root@localhost ~]# service docker start Redirecting to /bin/systemctl start docke ...

  9. Docker 安装与常用命令介绍

    docker的镜像文件作用就是:提供container运行的文件系统层级关系(基于AUFS实现),所依赖的库文件.已经配置文件等等. 安装docker yum install -y docker 启动 ...

  10. Docker入门以及常用命令

    目的: Docker入门 Docker简介 Centos7安装Docker Docker HelloWorld运行原理解析 阿里云镜像仓库配置 Docker常用命令 Docker基本命令 Docker ...

随机推荐

  1. Cordova 快速入门记录

    本篇文章由:http://xinpure.com/cordova-quick-start-recording/ 记一笔 Cordova 官网入门文档 Get Started Fast,言简意该.通俗易 ...

  2. storyboard,xib

    1. 从xib的viewcontroll中启动storyboard 或者 从一个storyboard切换到另一个storyboard: – (IBAction)openStoryboard:(id)s ...

  3. curl命令常用参数

    -a/--append 上传文件时,附加到目标文件 -A/--user-agent <string> 设置用户代理发送给服务器 -anyauth 可以使用“任何”身份验证方法 -b/--c ...

  4. RTTI、dynamic_cast、typeid、类与类之间的关系uml

    一.RTTI Run-time type information (RTTI) is a mechanism that allows the type of an object to be deter ...

  5. tp模型和数据库操作方法

    一.新建的模型名和表名一样,采用驼峰式,如表名user_type模型取名为UserType namespace app\index\model;use think\Model;class UserTy ...

  6. Dev属性设置

    DisplayFormat 设置显示格式如:{0:P}表示显示为百分号模式.如数据源中为0.5.表示出来为50% 2.GridContro总合计及分组合计: 常规总合计直接RunDesigner-Gr ...

  7. [elk]elasticsearch dashboard+保留10天内索引+导入导出备份

    es dashboard 有两款 head 这款我一直在用 https://github.com/mobz/elasticsearch-head 先修改es的配置文件: elasticsearch.y ...

  8. MYSQL数据库的导出的几种方法

    mysql的数据导出几种方法   从网上找到一些问题是关于如何从MySQL中导出数据,以便用在本地或其它的数据库系统之上:以及 将现有数据导入MySQL数据库中. 数据导出 数据导出主要有以下几种方法 ...

  9. NSString (NSStringPathExtensions)

    转自:http://linwwwei.iteye.com/blog/1407520 + (NSString *)pathWithComponents(NSArray *)components 根据co ...

  10. 跟着百度学PHP[9]-session与cookie的异同

    COOKIE cookie是将数据存储在客户端中,以此建立客户端与服务器之间的联系,但是cookie任然有一些局限性: 1.cookie相对不是很安全,容易被盗用导致cookie欺骗. 2.单个的co ...