docker备忘录_z0n1l2的博客-程序员宅基地

技术标签: docker  

重点

  • docker中镜像是静态数据
  • 通过docker run等类似命令从镜像创建一个容器, 容器是动态的数据,所有对容器的修改,不会影响创建容器的镜像. 一个镜像可以创建多个容器
  • 从镜像启动一个容器
    nvidia-docker run -it --name my-container -v /data/:/home bvlc/caffe:gpu
    基于镜像bvlc/caffe:gpu启动容器,容器名my-container, 并且把本地的/data目录映射到容器的/home目录

因为工作需要学习了一下docker的使用方法,记录在此.

安装

目前docker只支持linux下,而且也要是比较新的版本,比如ubuntu只有14.04和16.04支持.下面是16.04下的安装步骤

  • 安装必要的系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common   
  • 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -    
  • 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"   
  • 更新并安装Docker-CE
sudo apt-get -y update   
sudo apt-get -y install docker-ce    
  • 安装校验
docker version   

下载镜像

下面的命令利用docker在Ubuntu:16.04镜像内执行一个echo语句,如果本地没有ubuntu:16.04,会自动下载.

docker run ubuntu:16.04 /bin/echo "just tt"

但是因为GFW的原因,一般是下载失败的,可以先执行如下命令,设置加速器

docker pull registry.docker-cn.com/library/ubuntu:16.04

另一个加速的方法是注册DaoCloud,注册后会给个一命令,执行后重启docker服务,docker pull的速度会提高

运行docker

docker中镜像是静态的,镜像运行起来后就是容器,容器是动态的.

交互式运行docker

docker run -i -t ubuntu:16.04 /bin/bash

执行这条命令后,会使用镜像ubuntu:16.04创建一个容器,用户会进入这个容器,使用exit命令退出容器.

后台运行docker

docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

上面的命令利用镜像ubuntu:15.10创建一个容器,并执行一个shell循环. 这个命令会返回一个长字符串,叫做容器ID,唯一标识一个容器.

docker ps

查看所有运行中的容器

docker logs docker-id

docker-id就是那一长串字符(前面几位即可),该命令会显示容器的标准输出的内容

docker stop docker-id

停止后台运行的docker

docker 启动时增扩硬盘

docker -d --storage-opt dm.basesize=20G

docker 如何联网

docker默认的ubuntu镜像没有ifconfig和ping命令,在容器内执行如下命令即可

apt-get update
apt install net-tools
apt install iputils-ping

docker容器管理

  • docker run: 创建并启动一个容器
    有几个重启选项
    –restart=always: 不管容器返回码是什么, 都会重启容器
    –restart=on-failure:5 当容器返回值非零时才会重启容器
  • docker run -dit 192.168.1.10:5000/testpc:ver1: 后台方式启动一个镜像
  • docker ps -a: 查看所有容器,包括停止的
  • docker start A: 启动之前已经停止的容器A
  • docker stop: 推出容器
  • docker kill: 强制停止一个容器
  • docker rm: 删除已经停止的容器
  • docker cp: 在本地和docker之间复制文件
  • docker attach: 重新链接一个后台运行容器
    退出容器时,用ctrl-D会结束容器,用ctrl-P ctrl-Q退出但不结束容器

搭建docker私有库

  • docker pull registry
    registry也是一个特殊容器,保留字

  • docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry
    启动registry容器, 端口5000, 默认目录/var/lib/registry映射到本机的/opt/registry目录 (无认证启动registry容器)

  • docker commit 容器id 新的镜像名
    docker commit 96feb0 192.168.1.10:5000/testpc:ver2
    保持容器在运行中,做了修改后, 直接commit成规范的名字, 然后不需要tag,直接push即可

  • docker push 192.168.1.10:5000/linuxtest:v1
    把192.168.1.10:5000/linuxtest:v1推送到服务器,当然注意服务器上registry容器处在运行之中

  • curl http://192.168.1.10:5000/v2/_catalog
    查看服务器192.168.1.10上的images

  • curl http://192.168.1.10:5000/v2/mypc/tags/list
    查看服务器上mypc镜像的信息. 如果遇到http/https的问题,在客户机上做如下处理
    vim /etc/docker/daemon.json
    里面的内容是一个json对象,加上一项insecure-registries,地址自己更改(docker服务器地址):
    {
    “insecure-registries”:[“192.168.1.12:5000”]
    }
    然后重启docker,执行

systemctl daemon-reload docker  
systemctl restart docker

导出容器

这里是把镜像打包,不是导出一个正在运行的容器(docker export), 命令如下:
docker save 镜像名 | gzip > 文件名.tar.gz

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/z0n1l2/article/details/80698973

智能推荐

【SpringBoot】常用注解_springboot的注解_惜暮的博客-程序员宅基地

@EnableAutoConfiguration启动自动装载:使用了这个注解之后,所有引入的jar的starters都会被自动注入。这个类的设计就是为starter工作的。@RestController这个注解专门用于写RESTful的接口的,里面集成了@Controller和@ResponseBody注解。 @ResponseBody 这个注解会自动利用默认的Jackson将return的对象序

PyQt4的安装_from跬步to千里的博客-程序员宅基地

PyQt4是用来编写有图形界面程序(GUI applications)的一个工具包。pyqt的官方主页 PyQt4作为一个Python模块来使用,它有440个类和超过6000种函数和方法。 PyQt4的类库可分为以下模块: •QtCore •QtGui •QtNetwork •QtXml •QtSvg •QtOpenGL •QtSql其中: QtCore包含了PyQt非GUI功能

第一章 JavaScript简介《JavaScript高级程序设计》_weixin_34327223的博客-程序员宅基地

2019独角兽企业重金招聘Python工程师标准>>> ...

计算机械结构变形,机械结构设计-力学原理设计准则_weixin_39959192的博客-程序员宅基地

七、力学原理设计准则7.1 强度计算和试验准则1.对承受较大负载或扭矩的钣金位置,强度须经过计算,并安全合格;2.必要时须有试验报告和数据。7.2 均匀受载准则1.通过构件设计,使受力载荷分布均匀,载荷不集中可以保证同等条件下,承受的应力成倍增加。2.连续性和载荷均匀分布的设计可以实现。7.3 力流路径最短准则1.力流优先走较短路径,刚度最大的路径;2.力线连续。为提高构建刚度,尽量使力流路径最短...

iOS开发笔记之六十九——FRP与RAC介绍(二)_ios distinctuntilchanged_iOS猎人笔记的博客-程序员宅基地

******阅读完此文,大概需要20分钟******本篇章主要以介绍RAC的常见操作、常见使用场景、双向绑定、RACCommd等相关内容。一、RACSignal信号的过滤、筛选、合并等常见操作示例代码如下:- (void)coldSignalTest{ //信号的创建 RACSignal *signal = [RACSignal createSignal:^RA...

随便推点

windows和linux上获取cpu以及内存占用率_windows 内存使用计算_飞鸟真人的博客-程序员宅基地

《编程实现获取linux服务器cpu、内存和磁盘使用率》https://blog.csdn.net/wan_hust/article/details/32314701?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.control&spm=1001.2101.3001.4242废话不多说了,直接上代码:#pragma once#include <inttypes

java递归实现反转一个单链表_xk_一步一步来的博客-程序员宅基地

反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL//此题有收获,注意returnValue 的作用(仅用于返回)public ListNode reverseList(ListNode head) { if(head == null) return nu...

Prescan:关于Prescan与Matlab联合仿真问题小总(不定时补充)_matlab 唤起visviwer_柜子动了我下播了的博客-程序员宅基地

问题一:Prescan2019.1在联合仿真时,运行程序后VisViewer无法显示画面。如图,左下角显示未激活。解决方法:在Prescan工作界面点击如图按钮,勾选Visualize in VisViewer即可。问题二:联合仿真使用Camera+BRS做目标检测或行人检测时,运行时BRS+Camera显示界面黑屏。如图。解决方法:在配置传感器时进行如下操作。打开Camera传...

WEB与发卡器_web发卡机_codercodercode的博客-程序员宅基地

BS结构的系统使用web浏览器展示并与外部设备发卡器通信,IE浏览器支持的ocx技术在google chrome浏览器,firefox等浏览器上不再支持,这就无法使用ocx技术做兼容所有浏览器的web系统.友我科技读写器云服务插件就是为了解决web浏览器与发卡器进行通信而设计的,不仅支持google chrome浏览器,还支持IE,Firefox等主流的浏览器,简单来说,他就是一个连接发卡...

高通打补丁的android kernel源代码_patch android驱动_junwua的博客-程序员宅基地

获取经过高通打补丁的android 源代码网址:https://www.codeaurora.org/wiki/QAEP#Branch_Releaseshttps://www.codeaurora.org/xwiki/bin/QAEP/eclairhttps://www.codeaurora.org/xwiki/bin/QAEP/eclair_caramelhttps://www.codeauro...

推荐文章

热门文章

相关标签