Docker镜像常用指令
启动Docker
sudo systemctl start docker
查看Docker版本
docker version
搜索镜像
docker search 用来搜索 Dcoker Hub 中的镜像。例如 :
docker search java
下载镜像
使用docker pull 从Docker Rigistry中下载镜像,例如:
docker pull java
列出镜像
docker images 即可列出已经下载的镜像。
docker images
删除本地镜像
- 删除指定名称的镜像
docker rmi hello-world
docker rmi -f hello-world //强制删除
- 删除所有镜像
docker rmi -f $(docker images)
Docker容器常用指令
新建并启动容器
使用 docker run 命令来新建并启动一个容器。选项列表:
-d: 表示后台运行-P: 随机端口映射-p: 指定端口映射,有以下可选参数:
ip:hostPort:containerPortip::containerPortip:hostPort:containerPortcontainerPort
--network: 指定网络模式,该选项有以下可选参数:
--network=bridge: 默认选项,表示连接到默认网关。--network=host: 容器使用宿主的网络。--network=container: NAME_or_ID,告诉Docker让新建的容器使用自己已有的网络配置。--network=none: 不配置该容器的网络,用户可自定义网络配置。
例1:
docker run java /bin/echo 'Hello world'
例2:
docker run -d -p 91:80 nginx
启动一个nginx容器,没有镜像会先下载一个镜像。-d是后台运行,-p 开放容器端口到宿主机端口。
访问 http://Docker主机IP:91/ 就会看到;
列出容器
使用 docker ps 命令,默认可列出运行中的容器。要列出所有容器可以使用docker ps -a
- CONTAIER_ID : 容器id
- IMAGE : 镜像名称
- COMMAND : 表示启动时运行的命令
- CREATED : 创建时间
- STATUS : 容器运行的状态,UP表示运行中,Existed表示已经停止
- PORTS : 容器对外的端口
- NAMES : 表示容器名称,由Docker默认生成,也可使用
docker run命令的--name选项自行指定
停止容器
使用docker stop命令停止容器。
docker stop de4984c7ea98 //根据 CONTAIER_ID 来删除
docker stop sad_noyce //根据 NAMES 来删除
de4984c7ea98 可以从docker ps命令中查看运行容器的CONTAIER_ID。同理sad_noyce表示容器名称。
强制停止容器
可使用 docker kill 来强制停止容器。
docker kill de4984c7ea98 //de4984c7ea98 为 CONTAIER_ID
启动已停止的容器
使用docker run 命令,即新建并重启一个容器。对已经停止的容器,可以用docker start来启动。例如:
docker start de4984c7ea98 //de4984c7ea98 为 CONTAIER_ID
重启容器
使用docker restart来重启容器。该命令相当于先执行docker stop 然后执行docker start
进入容器
某些场景下,可能要进入运行中的容器。
- 使用
docker attach进入容器
docker attach de4984c7ea98 //de4984c7ea98 为 CONTAIER_ID
当多个窗口同事 attach一个容器的时候,所有的窗口都同步显示,有一个阻塞的话,其他窗口也无法操作。所以并不太方便。
- 使用
nsenter进入容器
首先要找到容器的第一个进程PID
docker inspect --format "{{.State.Pid}}" de4984c7ea98 //使用时,只需要改de4984c7ea98为你的 CONTAIER_ID 即可
然后根据PID,使用一下命令进入容器。
nsenter --target 3028 --mount --uts --ipc --net --pid //3028 是容器的PID
删除容器
使用docker rm 即可删除指定容器。
例1:
docker rm de4984c7ea98 //de4984c7ea98 为 CONTAIER_ID
该命令只能删除已经停止运行的容器,如需删除正在运行的容器,需要使用-f参数
例2:
docker rm -f de4984c7ea98 //de4984c7ea98 为 CONTAIER_ID
你也可以删除所有容器,例如:
docker rm -f $(docker ps -a -q)
本文介绍Docker镜像及容器的基本管理指令,包括镜像的搜索、下载、删除等操作,以及容器的新建、启动、停止、删除等流程。通过这些指令,读者能够掌握Docker的基础使用技巧。
12万+





