Docker使用示例(2) – 管理容器

列出容器


  1. $ docker ps
  2. CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                     NAMES
  3. 2bc9b1988080        redis               "docker-entrypoint.sh"   2 weeks ago         Up 2 hours          0.0.0.0:6379->6379/tcp    elephant-redis
  4. 817879be2230        postgres            "/docker-entrypoint.s"   2 weeks ago         Up 2 hours          0.0.0.0:65432->5432/tcp   pt-postgres

docker ps只列出正在运行的容器。要查看所有容器(包括已停止的),使用-a选项:

  1. $ docker ps -a
  2. CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS                     NAMES
  3. 9cc69f11a0f7        docker/whalesay     "ls /"                   26 hours ago        Exited (0) 26 hours ago                             berserk_wozniak
  4. 2bc9b1988080        redis               "docker-entrypoint.sh"   2 weeks ago         Up 2 hours                0.0.0.0:6379->6379/tcp    elephant-redis
  5. 817879be2230        postgres            "/docker-entrypoint.s"   2 weeks ago         Up 2 hours                0.0.0.0:65432->5432/tcp   pt-postgres

要列出特定状态的容器,可以使用-f选项指定。如下例子是列出已经退出的容器:

  1. $ docker ps -a -f status=exited
  2. CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS                     NAMES
  3. 9cc69f11a0f7        docker/whalesay     "ls /"                   26 hours ago        Exited (0) 26 hours ago

也可以使用-q选项来列出容器的ID:

  1. $ docker ps -aq
  2. 9cc69f11a0f7
  3. 2bc9b1988080
  4. 817879be2230

如果在生成容器时使用了–name mycontainer1指定名称,我们可以使用此名称来找到这个容器:

  1. docker ps -f name=mycontainer1

引用容器



Docker命令可以使用以下三种方式来引用容器:
Full UUID:9cc69f11a0f76073e87f25cb6eaf0e079fbfbd1bc47c063bcd25ed3722a8cc4a
Short UUID:9cc69f11a0f7
Name:berserk_wozniak
使用docker ps可以看到这三种形式。
UUID是Docker自动生成的,不能更改。你可以使用–name来指定一个你的名称。如果不指定,Docker则会分配一个随机的名称。

删除所有退出的容器


  1. docker ps -aq -f status=exited | xargs -r docker rm

其中docker ps -aq -f status=exited会列出所有已退出的容器的ID
或者使用:

  1. docker rm $(docker ps -aq -f status=exited)

连接后台运行的容器


  1. docker attach --sig-proxy=false <container>

使用这个命令会连接到容器的bash,意味着如果容器里运行着一个脚本,你会看到脚本的输出。
如果要断开连接,使用Ctrl-P Ctrl-Q。
如果要创建一个新的容器bash环境并进入,可以使用:

  1. docker exec -it <container> bash

从/到容器复制文件



从容器到宿主:

  1. docker cp CONTAINER_NAME:PATH_IN_CONTAINER PATH_IN_HOST

从宿主到容器:

  1. docker cp PATH_IN_HOST CONTAINER_NAME:PATH_IN_CONTAINER

启动/停止/重启容器



启动:

  1. docker start <container> [<container>...]

停止:

  1. docker stop <container> [<container>...]

重启:

  1. docker restart <container> [<container>...]
标签:容器Docker 发布于:2019-11-21 04:53:55