docker run

docker run ubuntu:18.04 /bin/echo "Hello world"
  • docker run:运行一个容器
  • ubuntu:1804:指定运行的镜像,如果本地不存在,从镜像仓库Docker Hub下载
  • /bin/echo "Hello world":在启动的容器里执行命令
docker run -i -t  ubuntu:18.04 /bin/bash
  • 使用 -i -t,让Docker运行的容器实现对话功能
  • -t:在容器内指定一个伪终端或终端
  • -i:允许你对容器内的标准输入(STDIN)进行交付
  • exit:使用exit退出
docker run -d ubuntu:18.04 /bin/sh -c "while true;do echo hello world;sleep 1;done"

使用以上命令创建一个以进程方式运行的容器

  • -d:表示默认不会进入容器,想要进入容器使用docker exec

在输出中,我们没有看到期望的 "hello world",而是一串长字符

2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

这个长字符串叫做容器 ID,对每个容器来说都是唯一的,我们可以通过容器 ID 来查看对应的容器发生了什么。

docker ps

我们需要确认容器有在运行,可以通过 docker ps 来查看

docker ps

输出详情介绍:

  • CONTAINER ID:容器 ID。
  • IMAGE:使用的镜像。
  • COMMAND:启动容器时运行的命令。
  • CREATED:容器的创建时间。
  • STATUS:容器状态。
    状态有7种:
  • created(已创建)
  • restarting(重启中)
  • running 或 Up(运行中)
  • removing(迁移中)
  • paused(暂停)
  • exited(停止)
  • dead(死亡)
  • PORTS:容器的端口信息和使用的连接类型(tcpudp)。
  • NAMES:自动分配的容器名称。
docker ps -a

查看已经停止运行的容器

docker logs && docker stop

在宿主主机内使用 docker logs 命令,查看容器内的标准输出:

docker logs 2b1b7a428627

使用docker stop停止一个容器

docker stop 2b1b7a428627

docker pull

如果我们本地没有 ubuntu 镜像,我们可以使用 docker pull 命令来载入 ubuntu 镜像:

docker pull ubuntu

docker attach

使用命令容器启动并进入容器,当退出容器时,容器停止。使用docker ps 会发现没有该容器

docker attach 2b1b7a428627

docker exec

docker exec -it 2b1b7a428627 /bin/bash

注: 退出后不会导致容器停止

docker export

将本地文件导出

docker export 2b1b7a428627 > ubuntu.tar

导出容器 2b1b7a428627 快照到本地文件 ubuntu.tar

docker import

可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu: v1:

cat docker/ubuntu.tar | docker import - test/ubuntu:v1

此外,也可以通过指定 URL 或者某个目录来导入,例如:

docker import http://example.com/exampleimage.tgz example/imagerepo

docker rm

删除容器使用docker rm

docker rm -f 1e560fca3906

docker container prune

清除掉所有处于终止状态的容器

docker container prune
Last modification:November 11th, 2020 at 05:25 pm