title: Docker入门
tags: Docker
1.运行容器 docker run
1.1Hello World
例:
docker run ubuntu:15.10 /bin/echo "Hello world"
本例子中我们运行(或创建)ubuntu镜像,并且指定版本为15.10, 然后执行 /bin/echo “Hello world” 命令,该命令会在容器中输出 Hello world
注意: 如果运行的镜像在本地环境上不存在,docker会自动连接Docker Hub 查找该镜像,如果存在就会自动下载,下载完毕后就会自动执行命令。
1.2运行交互式容器
例:
docker run -i -t ubuntu /bin/bash
本例中我们通过docker run在ubuntu容器中运行了/bin/bash命令启动了一个Bash shell,并指定了 -i -t 两个参数, -t 让docker分配一个伪终端并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开。Docker中系统镜像的缺省命令是 bash,如果不加 -t -i bash 命令执行了自动会退出。
2.使用容器
上面的例子我们运行了一个运行交互式容器,现在我们完全可以把它当成一个真正的ubuntu终端使用,并且使用root账户登录。
我们可以进行以下的ubuntu操作:
- 查询容器主机名:
hostname
- 查询容器接口:
ip a
- 查询容器进程:
ps -aux
- 在容器中安装软件 :
apt-ger update && apt-get install vim
- 退出容器:
exit
注意:为了效率的提升,我们能把命令合并起来就尽量合并。
3.列出Docker 容器 docker ps
- 使用
docker ps
只会显示当前正在运行的容器 - 使用
docker ps -a
可以查看所有容器
CONTAINER ID:容器ID
NAMES:自动分配的容器名称
4.容器命名
例:
docker run --name helloworld ubuntu /bin/echo "Hello world"
本例我们在上面的hello world的基础上,添加了 --name 参数给容器命名。
我们执行docker ps -a
查看下
5.停止容器 docker stop
我们运行docker run -i -t ubuntu /bin/bash
为例,使docker ps
获取到 容器ID为ee8bf4d2415a 容器名为awesome_kare。
- 使用
容器ID
停止容器
例:
doker stop ee8bf4d2415a
- 使用
名字
停止容器
例:
doker stop awesome_kare
6. 重新启动停止的容器docker start
当然这个命令也是可以使用容器ID或者容器名,这里我们只演示容器ID的例子
例:
docker start ee8bf4d2415a
7. 创建守护式容器(后台运行)
例:
docker run --name doolp -d ubuntu /bin/sh -c "while (true) do echo something; sleep 3; done;"
本例效果就是会循环输出 something
,我们使用了 --name 为容器命名为doolp,使用-d 使容器在后台运行。 当我们执行命令的时候发现什么都没输出,别担心这是正常现象因为我们使用的是后台运行。
8.查看容器日志 docker logs
上面我们执行了一个后台运行的容器,现在我们想查看它到输出。
例:
docker logs doolp
9. 删除容器 docker rm
-删除单个容器
例:
docker rm doolp
- 删除所有容器
例: docker rm
docker ps -a -q
其实docker 并不带全部删除,这里我们使用了一个小技巧。上面的 docker ps命令会列出现有的全部容器,-a标志代表列出所有容器,而-q标志则表示只需要返回容器的ID而不会返回容器的其他信息。这样我们就得到了容器ID的列表,并传给了 docker rm命令,从而达到删除所有容器的目的。