Docker常用命令
一、镜像命令
-
下载镜像的命令:
docker image pull
镜像从远程镜像仓库服务的仓库中下载,默认情况下,镜像会从Docker Hub 的仓库中拉取。
-
列出本地所有镜像
docler image ls
可以通过
--digests
参数来查看镜像的SHA256签名。 -
查看镜像的元数据
docker image inspect ID
该命令可以查看镜像层数据和元数据
-
删除镜像命令
docker image rm ID # 删除所有本地镜像 docker image rm $(docker image ls -q) -f
当镜像存在关联的容器,并且容器处于运行(Up)或者停止(Exited)状态时,不允许删除该镜像。
二、容器命令
-
启动一个新的容器
docker run
该命令的最简单形式接受镜像和命令作为参数。
docker run -it ubuntu /bin/bash
上面的命令会在前台启动一个Ubuntu容器,并且运行Bash Shell
使用
Ctrl -pq
会断开Shell和容器终端之间的链接,并在退出容器后保持后台运行状态 -
列出所有运行的容器
docker ps # -a 参数查看所有容器,包括已经停止的
-
进入运行的容器内部
docker exec -it <container-name or container-id> bash
该命令会在容器内部启动一个 Bash Shell 进程,并且连接到该Shell
-
停止容器
docker stop <container-name or container-id>
该命令通过发送 SIGTERM 信号给容器内PID为1的进程达到目的,如果进程没有在10s内得到清理并停止运行,那么会接着发送SIGKILL信号来强制停止该容器。
-
重启已经停止的容器
docker start <container-name or container-id>
该命令是启动已经停止(Exited)状态的容器
-
删除已经停止的容器
docker rm <container-name or container-id> # -f 参数是强制删除
如果不加参数
-f
只能删除停止的容器,加了-f
可以强制删除正在运行的容器。 -
查看容器的配置
docker inspect <container-name or container-id>
该命令会显示容器的配置细节和运行时信息
三、应用容器化的命令
-
根据Dockerfile文件创建容器
docker image build
该命令会读取Dockerfile,并将应用程序容器化,使用
-t
参数为镜像打标签,使用-f
参数指定Dockerfile的路径和名称,使用-f
参数可以指定位于任意路径下的任意名称的Dockerfile。构建上下文是指应用文件存放的位置,可能是本地Docker主机上的一个目录或一个远程的Git库。 -
Dockerfile中的
FROM
指令用于指定要构建的镜像的基础镜像,通常是Dockerfile文件的第一条指令。 -
Dockerfile中的
RUN
指令用于在镜像中执行命令,这会创建新的镜像层。 -
Dockerfile中的
COPY
指令用于将文件作为一个新的层添加到镜像中,通常使用该指令将应用代码复制到镜像中。 -
Dockerfile中的
EXPOSE
指令用于记录应用所使用的网络端口。 -
Dockerfile中的
ENTRYPOINT
指令指令用于指定镜像以容器方式启动后默认运行的程序。
四、Docker Compose 部署应用的命令
- docker-compose up 命令用于部署一个Compose应用。默认情况下该命令会读取名为docker-compose.yml 或 docker-compose.yaml 的文件,当然用户也可以使用-f指定其他文件名。
- docker-compose stop 命令会停止Compose应用相关的所有容器,但不会删除它们。被停止的应用可以很容易地通过 docker-compose restart 命令重新启动。
- docker-compose rm 命令用于删除已经停止的Compose应用。它会删除容器和网络,但是不会删除卷和镜像。
- docker-compose restart 命令会重新启动已经停止的Compose应用。如果用户在停止该应用后对其进行了变更,那么变更的内容不会反映在重启后的应用中,这时需要重新部署应用是变更生效。
- docker-compose ps 命令用于列出Compose应用中的各个容器。
- docker-compose down 会停止并删除运行中的Compose应用,它会删除容器和网络,但是不会删除卷和镜像。
五、Docker 网络命令
-
docker network ls 用于列出运行在本地Docker 主机上的全部网络。
-
docker network create 创建新的Docker网络。默认情况下Linux会采用Bridge驱动,可以使用-d参数指定驱动(网络类型)。
docker network create -d overlay overnet
该命令会创建一个新的名为
overnet
的覆盖网络,其采用的驱动为Docker Overlay
-
docker network inspect 提供Docker网络的详细配置信息
-
docker network prune 删除Docker主机上全部未使用的网络
-
docker network rm 删除Docker主机上指定的网络