列出容器
- $ docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 2bc9b1988080 redis "docker-entrypoint.sh" 2 weeks ago Up 2 hours 0.0.0.0:6379->6379/tcp elephant-redis
- 817879be2230 postgres "/docker-entrypoint.s" 2 weeks ago Up 2 hours 0.0.0.0:65432->5432/tcp pt-postgres
docker ps只列出正在运行的容器。要查看所有容器(包括已停止的),使用-a选项:
- $ docker ps -a
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 9cc69f11a0f7 docker/whalesay "ls /" 26 hours ago Exited (0) 26 hours ago berserk_wozniak
- 2bc9b1988080 redis "docker-entrypoint.sh" 2 weeks ago Up 2 hours 0.0.0.0:6379->6379/tcp elephant-redis
- 817879be2230 postgres "/docker-entrypoint.s" 2 weeks ago Up 2 hours 0.0.0.0:65432->5432/tcp pt-postgres
要列出特定状态的容器,可以使用-f选项指定。如下例子是列出已经退出的容器:
- $ docker ps -a -f status=exited
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 9cc69f11a0f7 docker/whalesay "ls /" 26 hours ago Exited (0) 26 hours ago
也可以使用-q选项来列出容器的ID:
- $ docker ps -aq
- 9cc69f11a0f7
- 2bc9b1988080
- 817879be2230
如果在生成容器时使用了–name mycontainer1指定名称,我们可以使用此名称来找到这个容器:
- docker ps -f name=mycontainer1
引用容器
Docker命令可以使用以下三种方式来引用容器:
Full UUID:9cc69f11a0f76073e87f25cb6eaf0e079fbfbd1bc47c063bcd25ed3722a8cc4a
Short UUID:9cc69f11a0f7
Name:berserk_wozniak
使用docker ps可以看到这三种形式。
UUID是Docker自动生成的,不能更改。你可以使用–name来指定一个你的名称。如果不指定,Docker则会分配一个随机的名称。
删除所有退出的容器
- docker ps -aq -f status=exited | xargs -r docker rm
其中docker ps -aq -f status=exited会列出所有已退出的容器的ID
或者使用:
- docker rm $(docker ps -aq -f status=exited)
连接后台运行的容器
- docker attach --sig-proxy=false <container>
使用这个命令会连接到容器的bash,意味着如果容器里运行着一个脚本,你会看到脚本的输出。
如果要断开连接,使用Ctrl-P Ctrl-Q。
如果要创建一个新的容器bash环境并进入,可以使用:
- docker exec -it <container> bash
从/到容器复制文件
从容器到宿主:
- docker cp CONTAINER_NAME:PATH_IN_CONTAINER PATH_IN_HOST
从宿主到容器:
- docker cp PATH_IN_HOST CONTAINER_NAME:PATH_IN_CONTAINER
启动/停止/重启容器
启动:
- docker start <container> [<container>...]
停止:
- docker stop <container> [<container>...]
重启:
- docker restart <container> [<container>...]