Docker入门

时间:2024-03-20 10:30:07

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会自动连接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 命令执行了自动会退出。

Docker入门

2.使用容器

        上面的例子我们运行了一个运行交互式容器,现在我们完全可以把它当成一个真正的ubuntu终端使用,并且使用root账户登录。
我们可以进行以下的ubuntu操作:

  • 查询容器主机名: hostname
  • 查询容器接口: ip a
  • 查询容器进程: ps -aux
  • 在容器中安装软件 : apt-ger update && apt-get install vim
  • 退出容器: exit

注意:为了效率的提升,我们能把命令合并起来就尽量合并。

Docker入门

3.列出Docker 容器 docker ps

  • 使用docker ps 只会显示当前正在运行的容器
  • 使用docker ps -a 可以查看所有容器

CONTAINER ID:容器ID
NAMES:自动分配的容器名称

Docker入门

4.容器命名

例:docker run --name helloworld ubuntu /bin/echo "Hello world"

        本例我们在上面的hello world的基础上,添加了 --name 参数给容器命名。
我们执行docker ps -a 查看下
Docker入门

5.停止容器 docker stop

        我们运行docker run -i -t ubuntu /bin/bash 为例,使docker ps获取到 容器ID为ee8bf4d2415a 容器名为awesome_kare。

  • 使用容器ID停止容器

例:doker stop ee8bf4d2415a

  • 使用名字停止容器

例:doker stop awesome_kare
Docker入门

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

Docker入门

9. 删除容器 docker rm

-删除单个容器

例: docker rm doolp

  • 删除所有容器

例: docker rm docker ps -a -q

        其实docker 并不带全部删除,这里我们使用了一个小技巧。上面的 docker ps命令会列出现有的全部容器,-a标志代表列出所有容器,而-q标志则表示只需要返回容器的ID而不会返回容器的其他信息。这样我们就得到了容器ID的列表,并传给了 docker rm命令,从而达到删除所有容器的目的。