Skip to content
DAILY QUOTE

“ ”

Docker基本命令

1.帮助命令

bash
#1.查看Docker版本信息
docker version

#2.查看Docker系统级信息,包括镜像和容器数量
docker info

#3.查看Docker命令帮助
docker 命令 --help

2.镜像命令

2.1查看本地镜像

bash
#1.查看本地主机上的所有镜像
docker images

#2.列出所有镜像详细信息
docker images -a

#3.只列出所有镜像id
docker images -aq

常用参数:

参数作用
-a列出所有镜像
-q只显示镜像id

2.2查找镜像

bash
docker search 镜像名

注意:docker search不走镜像源,只会走Docker官方渠道,容易超时。

2.3下载镜像

bash
#1.下载指定镜像
docker pull 镜像名[:tag]

说明:不写tag时,默认下载latest版本。

示例:

bash
ubuntu@Mystpet:~$ docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
17eec7bbc9d7: Pull complete
ea52d2000f90: Download complete
Digest: sha256:85404b3c53951c3ff5d40de0972b1bb21fafa2e8daa235355baf44f33db9dbdd
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

补充说明:

  • Pull complete表示镜像分层下载完成,这是Docker镜像的核心机制之一。
  • docker.io/library/hello-world:latest是真实镜像地址。
  • docker pull hello-world等价于docker pull docker.io/library/hello-world:latest

2.4删除镜像

bash
#1.删除指定镜像
docker rmi image id

#2.删除多个镜像
docker rmi image id1 image id2 image id3

#3.删除所有镜像
docker rmi $(docker images -aq)

补充命令:

bash
#停止全部容器
docker stop $(docker ps -a -q)

3.容器命令

说明:有了镜像才可以创建容器。

3.1新建并启动容器

bash
#1.新建容器并启动
docker run [可选参数] image

#2.启动Ubuntu容器并进入容器终端
docker run -it ubuntu /bin/bash

参数说明:

参数作用
-i保持标准输入打开
-t分配一个伪终端
/bin/bash进入容器后执行bash

示例:

bash
root@7d6209933ef2:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

root@7d6209933ef2:/# exit

说明:exit会从容器退回主机。

3.2列出容器

bash
#1.列出正在运行的容器
docker ps

#2.列出正在运行的容器和历史容器
docker ps -a

#3.只显示容器编号
docker ps -q

示例:

bash
ubuntu@Mystpet:~$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

ubuntu@Mystpet:~$ docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS                       PORTS     NAMES
9a6c7cac3bab   ubuntu         "/bin/bash"              6 minutes ago   Exited (0) 6 minutes ago               dazzling_ritchie
fe8194fdc53a   ubuntu         "/bin/bash"              8 minutes ago   Exited (127) 8 minutes ago             practical_gagarin
cc3d0463dd17   nginx:alpine   "/docker-entrypoint.…"   4 weeks ago     Exited (0) 11 days ago                 myblog-container

常用参数:

参数作用
-a列出正在运行的容器和历史容器
-q只显示容器编号

3.3退出容器

bash
#1.直接退出容器并关闭容器
exit

#2.退出容器但不关闭容器
Ctrl+P+Q

3.4删除容器

bash
#1.强制删除指定容器
docker rm -f 容器id

#2.强制删除所有容器
docker rm -f $(docker ps -aq)

3.5启动和停止容器

bash
#1.启动容器
docker start 容器id

#2.重启容器,常用于加载新配置
docker restart 容器id

#3.停止当前正在运行的容器
docker stop 容器id

#4.强制停止当前容器
docker kill 容器id

4.常用容器操作

4.1后台运行容器

bash
docker run -d ubuntu

问题:执行后通过docker ps查看,可能会发现Ubuntu容器已经停止。

原因:Docker容器的生命周期与内部PID1进程共存亡。容器如果要在后台持续运行,内部必须有一个阻塞式的前台主进程;一旦主进程执行完毕或退居后台,Docker就会判定任务结束,容器也会随之退出。

4.2查看日志

bash
#1.查看docker logs帮助
docker logs --help

常用参数:

参数作用
--details显示日志额外详情
-f--follow持续跟踪日志输出
--since string显示指定时间之后的日志
-n--tail string查看末尾指定行数的日志
-t--timestamps显示时间戳
--until string显示指定时间之前的日志

常用写法:

bash
docker logs -tf --tail [number] 容器id

参数说明:

  • --tail number:只看最后几行。
  • -t:显示精确到秒的时间戳。
  • -f:持续跟踪日志。

4.3查看容器中的进程信息

bash
docker top 容器id

示例:

bash
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                4070367             4070344             0                   18:13               ?                   00:00:00

4.4查看容器元数据

bash
docker inspect 容器id

说明:docker inspect用于查看容器或者镜像的详细元数据信息。

4.5进入正在运行的容器

bash
#1.进入容器后开启一个新终端,可以在里面操作
docker exec -it 容器id /bin/bash

#2.进入容器正在执行的终端,不会启动新的进程
docker attach 容器id

4.6从容器拷贝文件到主机

bash
#语法
docker cp 容器id:容器内路径 目的地主机路径

示例:

bash
#1.启动容器
ubuntu@Mystpet:~/blog$ docker run -it tomcat:latest /bin/bash

#2.新建文件
root@663302aac625:/usr/local/tomcat# echo "测试" > hello.txt
root@663302aac625:/usr/local/tomcat# exit

#3.把容器内文件拷贝到主机
ubuntu@Mystpet:/home$ docker cp 663302aac625:/usr/local/tomcat/hello.txt ~/

#4.查看主机文件
ubuntu@Mystpet:~$ ls
blog  hello.txt  idea  minecraft