查询容器
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. less1.5中的减错误

    (@bodywidth)-@leftwidth即在第一个变量外加括号---正确 @bodywidth-@leftwidth即直接使用不加括号--------错误

  2. 通过srvctl add命令添加database信息到srvctl管理器

    ================================================通过srvctl add命令添加database信息到srvctl管理器================ ...

  3. JS常用方法手记

    1.判断arr数组是否含有元素str,没有返回-1 arr.indexOf(str) 2.遍历arr数组,k为键,v为值 arr.map((v, k) => { return;}) 3.arr数 ...

  4. pycharm连git和gitee

    http://www.cnblogs.com/feixuelove1009/p/5955332.html https://www.58jb.com/html/171.html

  5. inclusion_tag 看图

  6. 九度OJ 1069:查找学生信息 (排序、查找)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:11240 解决:3024 题目描述: 输入N个学生的信息,然后进行查询. 输入: 输入的第一行为N,即学生的个数(N<=1000) 接 ...

  7. 替代或者与 Redis 配合存储十亿级别列表的数据.

    http://ssdb.io/docs/zh_cn/index.html 用户案例 如果你在生产环境中使用 SSDB, 欢迎你给我发邮件(ssdb#udpwork.com), 我很愿意把你加入到下面的 ...

  8. crm高速开发之EntityCollection

    /* 创建者:菜刀居士的博客  * 创建日期:2014年07月07号  */ namespace Net.CRM.OrganizationService {     using System;     ...

  9. Nginx报出504 Gateway Timeout错误2

    昨天,一个程序需要导出500条数据,结果发现到150条是,Nginx报出504 Gateway Timeout错误 经观察,发现大约30秒时超时,php.ini中执行时间配置已经是300秒: 复制代码 ...

  10. JavaScript及jQuery学习小结

    最近几天学习了很多关于JavaScript和jQuery的文章,稍作梳理后,总结如下. 1.jQuery入门系列 环境搭建 只需引用一个jQuery库文件,即可完成jQuery的环境搭建. 选择器 j ...