docker命令
wsargent/docker-cheat-sheet: Docker Cheat Sheet (github.com)
容器
Lifecycle
| 命令 | 说明 | 例子 |
|---|---|---|
docker create | creates a container but does not start it. | docker create --name myubuntu ubuntu |
docker rename | allows the container to be renamed. | docker rename oldname newname |
docker run | creates and starts a container in one operation. | docker run --name mynginx -p 80:80 -d nginx |
docker rm | deletes a container. | docker rm mycontainer |
docker update | updates a container's resource limits. | docker update --cpu-shares 512 mycontainer |
docker run: 通常,如果您不使用任何选项运行容器,它将立即启动并停止。如果您想保持其运行状态,可以使用命令docker run -td container_id -t 选项来分配一个伪终端会话,-d选项自动分离容器(在后台运行容器并打印容器 ID)。
如果您想要一个临时容器,docker run --rm 将在停止后移除容器。在运行mysql客户端的时候,可以使用该参数 docker run -it --rm mysql:5.7 mysql -h172.17.0.2 -uroot -p
如果您想将主机上的目录映射到 Docker 容器中 docker run -v $HOSTDIR:$DOCKERDIR
如果您想删除与容器关联的卷,删除容器必须包括参数-v, docker rm -v
在 Docker 1.10 中,还提供了针对单个容器的日志驱动程序。要使用自定义日志驱动程序(例如 syslog)运行 Docker 。使用命令 docker run --log-driver=syslog
另一个有用的选项是 --name,因为当您在运行命令中指定时名称,这将允许您通过使用创建容器时指定的名称来启动和停止容器。
Starting and Stopping
| 命令 | 说明 | 例子 |
|---|---|---|
docker start | starts a container so it is running. | docker start mycontainer |
docker stop | stops a running container. | docker stop mycontainer |
docker restart | stops and starts a container. | docker restart mycontainer |
docker pause | pauses a running container, "freezing" it in place. | docker pause mycontainer |
docker unpause | will unpause a running container. | docker unpause mycontainer |
docker wait | blocks until running container stops. | docker wait mycontainer |
docker kill | sends a SIGKILL to a running container. | docker kill mycontainer |
docker attach | will connect to a running container. | docker attach mycontainer |
Info
| 命令 | 说明 | 例子 |
|---|---|---|
docker ps | shows running containers. | docker ps |
docker logs | gets logs from container. (Available for json-file and journald in 1.10) | docker logs -f mycontainer |
docker inspect | looks at all the info on a container (including IP address). | docker inspect mycontainer |
docker events | gets events from container. | docker events |
docker port | shows public facing port of container. | docker port mycontainer |
docker top | shows running processes in container. | docker top mycontainer |
docker stats | shows containers' resource usage statistics. | docker stats |
docker diff | shows changed files in the container's filesystem. | docker diff mycontainer |
docker ps -a显示正在运行和已停止的容器。
docker stats --all 显示所有容器的列表,默认只显示正在运行的。
Import / Export
| 命令 | 说明 | 例子 |
|---|---|---|
docker cp | copies files or folders between a container and the local filesystem. | docker cp mycontainer:/path/to/file /local/path |
docker export | turns container filesystem into a tarball archive stream to STDOUT. | docker export my_container | gzip > my_container.tar.gz |
Executing Commands
| 命令 | 说明 | 例子 |
|---|---|---|
docker exec | to execute a command in container. | docker exec -it foo /bin/bash |
要进入一个正在运行的容器,将一个新的 shell 进程附加到名为 foo 的运行中的容器上,使用docker exec -it foo /bin/bash
Image
Lifecycle
| 命令 | 说明 | 例子 |
|---|---|---|
docker images | shows all images. | docker images |
docker import | creates an image from a tarball. | cat my_container.tar.gz | docker import - my_image:my_tag |
docker build | creates image from Dockerfile. | docker build -t myimage:0.0.1 . |
docker commit | creates image from a container, pausing it temporarily if it is running. | docker commit mycontainer mynewimage |
docker rmi | removes an image. | docker rmi myimage |
| docker image prune | 清除未使用的镜像 | |
docker load | loads an image from a tar archive as STDIN, including images and tags (as of 0.7). | docker load < my_image.tar.gz |
docker save | saves an image to a tar archive stream to STDOUT with all parent layers, tags & versions (as of 0.7). | docker save my_image:my_tag | gzip > my_image.tar.gz |
export import 和 save load区别?
-
export 导出丢失镜像所有的历史记录和元数据信息。
docker export 的应用场景:主要用来制作基础镜像,比如我们从一个 ubuntu 镜像启动一个容器,然后安装一些软件和进行一些设置后,使用 docker export 保存为一个基础镜像。然后,把这个镜像分发给其他人使用,比如作为基础的开发环境。
-
save 保存没有丢失镜像的历史,可以回滚到之前的层。
docker save 的应用场景:如果我们的应用是使用 docker-compose.yml 编排的多个镜像组合,但我们要部署的客户服务器并不能连外网。这时就可以使用 docker save 将用到的镜像打个包,然后拷贝到客户服务器上使用 docker load 载入。