文章目录
  1. 1. 安装Docker
  2. 2. 运行第一个Docker容器
    1. 2.1. 查找镜像
    2. 2.2. 拉取镜像
    3. 2.3. 运行镜像
    4. 2.4. 查看容器
    5. 2.5. 附着到容器
    6. 2.6. 查询容器日志
    7. 2.7. 查询容器中的进程
    8. 2.8. 停止容器
    9. 2.9. 重启容器
    10. 2.10. 删除容器
    11. 2.11. 在容器内执行bash命令

安装Docker

具体安装方法请参照官网 GetDocker
Mac版的安装和其他应用程序一样简单,傻瓜式操作,这里就不重复介绍了。

运行第一个Docker容器

当然运行第一个容器之前需要先查找对应的镜像,那么就涉及到docker的第一个命令:

查找镜像

docker search <the image name>

例如 我要查找centos的镜像:
docker search centos
这里docker会返回所有和centos相关的镜像(包括官方河非官方的)
我们这里的目的其实是基于官方的镜像做些展示,所以选择官方的镜像就好。
说到这里其实就涉及到第二个常见的docker命令了:

拉取镜像

docker pull <image name>:<tag>
例如 我要pull centos 7这个版本的镜像:
docker pull centos:7
需要说明的是这个命令中tag是可选参数,如果命令中未填写,那么docker会从目标容器镜像中下载latest这个特殊(最新)版的镜像。
这里推荐在pull命令中显式制定版本,方便后面的环境维护和管理。

Ok,等待下载完成。当然这个过程在墙内的世界会很慢,还好有镜像加速的服务,提供镜像服务的厂商目前有不少例如阿里云daocloud
本人选择的是阿里云,按照厂商要求配置,重新pull,哇~速度飞起。

镜像也pull下来了,那么就到关键的一步了:

运行镜像

docker run -i -t <image name> /bin/bash
下面来解释下这个命令的几个参数到底是做什么的:

  • 首先是 -i 保证的是容器中的STDIN是开启的
  • 其次 -t 告诉Docker为要创建的容器分配一个伪tty终端
    这样两个参数是保证创建的容器是一个可交互的容器,而不是一个运行后台服务的容器。
    好了,现在就是你熟悉的部分了,一个运行着centos的linux环境。
    处理完事情,敲入exit,结束会话,回到了docker宿主机的命令行模式,一切自然。等等……总觉着有什么不对,对了,那个容器怎样了?
    其实容器依然存在,那么怎么查看这些容器呢?

查看容器

docker ps
这个命令会列出所有正在运行的容器,如果想查看所有需要加上参数 -a
这里需要注意的是这两列信息:

  • CONTAINER ID
  • Names

那么我们还想回到容器内部操作怎么办?

附着到容器

docker attach <containerID / Names>
参数中 CONTAINER ID 和 Names 任意一个都可以。

日常操作中不可避免的都会涉及到这两个查询操作:

  • 查询容器日志
  • 查询容器中的进程

查询容器日志

docker logs -f <container name>
如果想在log中打印出log时间只需要添加参数 -t
docker logs -ft <container name>

查询容器中的进程

docker top

日常对容器的操作除了查询些这外,还有些管理容器的命令如:

停止容器

docker kill <container name>
或者
docker stop <container name>

重启容器

docker start <container name>

删除容器

docker rm <container name>

在容器内执行bash命令

docker exec -it <container name> /bin/bash

以上介绍的是docker常见的一些操作和命令,其中守护式容器的操作在本篇并未涉及,这部分内容将在之后的文章中介绍。

文章目录
  1. 1. 安装Docker
  2. 2. 运行第一个Docker容器
    1. 2.1. 查找镜像
    2. 2.2. 拉取镜像
    3. 2.3. 运行镜像
    4. 2.4. 查看容器
    5. 2.5. 附着到容器
    6. 2.6. 查询容器日志
    7. 2.7. 查询容器中的进程
    8. 2.8. 停止容器
    9. 2.9. 重启容器
    10. 2.10. 删除容器
    11. 2.11. 在容器内执行bash命令