查询容器
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的卸载

  1. yum list installed | grep docker
  2. docker-engine.x86_64 1.7.-.el7.centos installed
  3. 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. oracle恢复已经删除的数据

    insert into tablerestore select * from tablerestore as of timestamp to_Date('2014-8-8 15:00:00','yyy ...

  2. js将字符串转变成数字

    方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有 ...

  3. beego的MVC架构介绍

    beego 的 MVC 架构介绍 beego 是一个典型的 MVC 框架,它的整个执行逻辑如下图所示: 通过文字来描述如下: 在监听的端口接收数据,默认监听在 8080 端口. 用户请求到达 8080 ...

  4. 如何编译文件(gcc + nasm)

    [0]README 编译文件(nasm + gcc),特别是编译目标文件的依赖文件:本文旨在回顾 gcc 和 nams 编译器的编译命令,以及如果有多个依赖文件该如何编译: [1]编译文件 1.1)编 ...

  5. 前端编程提高之旅(三)----浏览器兼容之IE6

    在爱奇艺实习期间,乐帝主要负责移动端活动页面的制作,因为移动浏览器是随着智能手机兴起的,这就决定了移动端不会重蹈浏览器兼容问题的覆辙.一開始就比較好的支持web标准,而纵观整个互联网行业,移动web开 ...

  6. eclipse集成tomcat改动字符集參数

    问题: 在eclipse 4.4(Luna)中集成tomcat时,直接改动原tomcat文件夹中的配置文件,不起作用. 有时.我们会修改字符集參数为utf-8,以解决中文乱码问题,修改之后依旧乱码-- ...

  7. asm 与 cglib(整理的)

    参考博客地址 http://www.oseye.net/user/kevin/blog/304#top http://www.blogjava.net/vanadies10/archive/2011/ ...

  8. 【Android】带底部指示的自定义ViewPager控件

    在项目中经常需要使用轮转广告的效果,在android-v4版本中提供的ViewPager是一个很好的工具,而一般我们使用Viewpager的时候,都会选择在底部有一排指示物指示当前显示的是哪一个pag ...

  9. 仿易讯clientloading效果

    以下来实现一个loading效果.详细效果例如以下: 首先对这个效果进行拆分,它由以下部分组成: 1 一个"闪电"样式的图案. 2 "闪电"图案背后是一个圆角矩 ...

  10. UITableView使用指南

    本文转载至 http://blog.csdn.net/yu0089/article/details/8227402 一.概述 UITableView是iOS开发比不可少也是最重要的一个控件类.可以说任 ...