查询容器
docker ps 
只能查询到正在运行的docker镜像;
如果添加上-a的选项,则会显示所有的(包括已经exit,未启动)的容器

基于一个镜像来构建(run)容器,并启动

docker run -i -t centos /bin/bash

-i 代表要运行的docker提供的标准输入(STDIN);
-t 代表tty,启动一个伪终端;
/bin/bash 代表告知docker要启动的应用程序/bin/bash(一种Unix的shell应用)。
docker容器的命名方式:
 docker run --name centons7 -i -t centso /bin/bash 
这样就指定了docker的名称(默认docker会随机生成的名称),但是无法通过docker images看到名称,只能是启动之后,通过docker ps来看到docker的名称;
对于docker的start,以及attach操作,一定是在docker的run之后(run可以理解为加载到了内存中),才可以进行操作,run之后的exit只是容器退出了当前的shell,仍然处于加载的状态。
docker run可以理解为一个复合命令,build container & docker start & docker attach
 

docker使用的正常姿势

1.docker run来创建docker container,可以指定名称,资源;如果指定参数为 -it 可以实现attach的效果;

2.docker start dockerName来启动一个已经创建的container,其中dockerName是通过ps( -a)来获取,如果在run的时候已经起了一个名字则直接拿来用;
3.docker attach 进入到一个已经启动的container的shell(命令行)
4.通过命令行exit来退出;一旦exit之后,就意味着container被stop了;如果想要再次使用就需要进行start;

docker exec

docker exec是指对于已经被attach(run -i -t或者attach)的容器(container)进行操作;如果已经被exit的container是无法使用exec的。
exec有两类操作:
  一类是后台操作,只是默默的在后台执行一个操作:docker exec -d uv touch /opt/test.txt;
  第二类是终端交互,进入到用户的shell(伪tty),进行操作,docker exec -i -t uv /bin/bash
  另外,docker exec可以进入到docker run -d之后的容器命令行,attach对于-d的容器无法进入;

docker中指定HostName

  在docker里面无法使用hostnamectl来设置机器名称;可以通过
   docker run -h hostname 
  的方式来指定hostname。
docker run的-d指令
  -d选项代表docker进程的运行方式是守护进程方式(daemon),可以理解为在“后台执行”。但是如果docker run在最后指定了CMD,无论这个CMD是指令还是执行脚本,docker进程的使命就是执行命令,命令执行完毕,docker进程释放;所以-d的价值其实在于/bin/bash,或者执行脚本中包含有
   tail -f /dev/null 
  这类指令,可以将进程Hold住;否则就会出现执行完脚本之后docker退出(通过docker ps -a看到docker状态已经是Exit)。
docker仓库拉取
 一旦从docker仓库中拉取过来,他的名字就发生了变化,比如从内网的私服10.1.108.108:5000中拉取docker,容器的名称就是10.1.108.108:5000/XXX,这是因为这个名字在私服里面就是这个名字,那么这个名字的前缀是因为制作镜像的时候,为了能够push到指定仓库(这里是10.1.108.108)才这样起名字。run的时候就需要添加这个前缀:
   sudo docker run --name registry --restart=always -d -p : 10.1.108.108:/registry
 
docker的卸载

yum list installed | grep docker
docker-engine.x86_64 1.7.-.el7.centos installed
yum -y remove docker-engine.x86_64
docker的异常处理
1. Error running DeleteDevice dm_task_run failed
重启docker即可

2. Error starting daemon: error initializing graphdriver: \"/var/lib/docker\" contains several valid graphdrivers: devicemapper, overlay; Please cleanup or explicitly choose storage driver (-s <DRIVER>)
到/var/lib/docker根据情况,将下面的overlay或者devicemapper文件夹删掉即可。这种情况发生在使用采用dc/os安装后,原有的devicemapper模式修改成了overlay,但是docker同时只能支持一种存储模式。

docker的操作的更多相关文章

  1. Docker下操作指令

    Docker下操作指令 以mysql为例 1.搜索镜像: #docker search mysql 2.拉取镜像 #docker pull mysql:5.7 3.加载镜像并绑定端口: #docker ...

  2. Docker学习(二)docker镜像操作

    上一篇:docker学习(一)在centos7上安装docker 列出所有docker镜像 docker images 拉取镜像 docker pull 镜像名 我这里一Tomact为例 首先在Doc ...

  3. Docker学习(三)docker容器操作

    上一篇:Docker学习(二)docker镜像操作 容器是基于镜像创建的,说白了把一个镜像运行起来就是容器 查看容器 docker ps 上面什么也没有,因为我们没有正在运行的容器,下面我门启动一个容 ...

  4. [容器]docker-ce安装最新版-docker常用操作

    社区: http://www.dockerinfo.net/rancher http://dockone.io/ https://www.kubernetes.org.cn/ 1,docker安装配置 ...

  5. 二、Docker基础操作

    原文:二.Docker基础操作 一.下载镜像 命令:docker pull xxxxxx(镜像名) docker pull training/weapp 二.运行镜像 docker run -d -P ...

  6. (三) Docker 常用操作与CentOS7 防火墙命令

    参考并感谢 Docker 常用命令 https://docs.docker.com/engine/reference/commandline/docker/ Docker 登录docker账户 doc ...

  7. Docker笔记--操作容器命令

    Docker笔记--操作容器命令 创建容器 docker [container] create-- 创建容器,使用docker [container] create命令新建的容器处于停止状态,可以使用 ...

  8. docker常规操作——启动、停止、重启容器实例

    一.启动一个已经停止的容器实例 docker start 容器ID或容器名,建议使用容器ID,容器ID支持模糊查询而容器名称不支持1. 先查看已经暂停的容器实例信息 2. 通过docker start ...

  9. windows系统 docker + swoole 操作

    之前文章讲过在windows系统安装 cgywin 从而安装swoole扩展的操作,但是安装cgywin的时候会出现这样那样的问题.所以今天记录下另一种方式使用docker 安装 swoole 环境! ...

  10. Docker基础操作

    安装 ubuntu16.04安装docker sudo apt-get update sudo apt-get install docker sudo apt-get install docker.i ...

随机推荐

  1. webStorm 多列编辑

    webStorm可以像Sublime一样使用列编辑,只是区别在于webStorm只可以编辑连续列表. 按住alt键鼠标选择一列,然后输入文字就会编辑多行,这个功能很赞,比较实用(按住ALT键选中之后, ...

  2. JS——特效秀

    0.凛冬将至,用几款特效暖暖身    ①.tab图片切换: ②.索引图片切换:    ③.统计图: ④.滚动条分页:   1.Canvas跳动彩球时间动画特效  

  3. Ubuntu 12.04中文输入法的安装(zhuan)

    Ubuntu 12.04中文输入法的安装   Ubuntu上的输入法主要有小小输入平台(支持拼音/二笔/五笔等),Fcitx,Ibus,Scim等.其中Scim和Ibus是输入法框架. 在Ubuntu ...

  4. django部署到apache上(非常重要的,3者版本要一致,是32位就都要是32位的)

    网上把django部署到apache的文章挺多的,但是按照大家的操作,并没有一次就成功,还是遇到了一些问题,这里主要有以下几个情况. 1.网上找到的mod_wsgi的版本问题,导致动态库加载不上. 2 ...

  5. Java知识点梳理——常用方法总结

    1.查找字符串最后一次出现的位置 String str = "my name is zzw"; int lastIndex = str.lastIndexOf("zzw& ...

  6. ios Symbol(s) not found for architecture arm64总结 含隐藏错误cocoapods

    一.通用 报错:Desktop/project/ASDF/WEIXIN/libWeChatSDK.a (3 slices) Undefinedsymbols for architecture arm6 ...

  7. Android Development Note-02

    输入框左侧的logo:android:drawableleft   弹出提示: Toast.makeText(this,"提示",Toast.LENGHT_LONG).show() ...

  8. Java for LeetCode 089 Gray Code

    The gray code is a binary numeral system where two successive values differ in only one bit. Given a ...

  9. OpenGL几何变换---翻译http://www.songho.ca/opengl/gl_projectionmatrix.html

    Overview 几何数据——顶点位置,和法向量(normal vectors),在OpenGL 管道raterization 处理过程之前可通过顶点运算(Vertex Operation)和基本组合 ...

  10. matlab中的try...catch...end

    我们知道,matlab的代码是按行执行的,如果碰到错误行,则程序中断.try..catch可以使得可能出错代码不影响后面代码的继续执行,也可以检查,排查,解决程序的一些错误,增强代码的鲁棒性和可靠性. ...