【Docker 容器】笔记📒

2025-10-22 00:25:48

目录:

创建容器

docker create 创建的容器处于停止状态,需要使用 docker start 手动启动容器。

$ docker create -it ubuntu:latest

与容器运行模式相关的
与容器和环境配置相关的
与容器资源限制和安全保护相关的

启动容器

$ docker start <container_id>

使用 docker create 创建的容器,或者使用 docker stop 停止的容器,都可以使用 docker start 启动容器。

查看容器

docker ps 命令查看正在运行的容器。

$ docker ps 

-a 参数查看所有容器,包含运行中的、停止的、已经退出的容器。

$ docker ps -a

新建并启动容器

docker run 等价于 docker create + docker start

$ docker run ubuntu:latest /bin/echo 'Hello, World!'
$ docker run -it ubuntu:latest /bin/bash
# 

-i 让容器的标准输入保持打开
-t 分配一个伪终端,并绑定到容器的标准输入上
-it 进入容器内部终端进行操作
-d 后台运行容器
-P 随机分配一个端口给容器的端口映射
-p <host_port>:<container_port> 映射容器端口到主机端口
--name <container_name> 为容器指定一个名称

终止容器

首先向容器发送 SIGTERM 信号,然后等待容器进程退出。如果等待一段时间后容器依然没有退出,则会发送 SIGKILL 信号来终止容器。

$ docker stop <container_id>

docker kill 会直接发送 SIGKILL 信号来终止容器。

基于attach进入容器

当多个窗口同时用 attach 进入一个容器时,所有窗口都会同步显示,当某个窗口因命令阻塞时,其它窗口也无法执行操作。

$ docker run -itd ubuntu
$ docker attach <container_id>

基于exec进入容器

Docker 1.3.0 提供 exec 命令,允许用户在运行中的容器中执行命令,最为推荐。

$ docker exec -it <container_id> /bin/bash

删除容器

使用 docker rm 只能删除处于终止或退出状态的容器,如果容器正在运行,则无法删除。

$ docker rm <container_id>

如果要删除一个运行中的容器,可以添加 -f 参数。Docker 会先发送 SIGKILL 信号给容器,终止其中的应用,之后强制删除。

$ docker rm -f <container_id>

导出容器

导出一个已经创建的容器到一个文件,不管这个容器是否处于运行状态。

$ docker export -o test_for_run.tar <container_id>
$ docker export <container_id> > test_for_run.tar

导入容器

将 docker export 导出的文件导入到 Docker 中变成镜像。

$ docker import test_for_run.tar - test/ubuntu:v1.0

基于压缩包创建镜像

复制容器内文件到本机

格式: docker cp <容器名称或ID>:/容器内/路径 /宿主机/备份/路径

如下示例:将容器中 /home/dkvirus/test 目录复制到本机的 /Users/dkvirus/Downloads/test 目录中。

$ docker cp c605b9afcebd:/home/dkvirus/test /Users/dkvirus/Downloads/test

复制本机文件到容器内

格式: docker cp /宿主机/备份/路径 <容器名称或ID>:/容器内/路径

如下示例:将本机的 /Users/dkvirus/Downloads/test 复制到容器中 /home/dkvirus/test 目录中。

$ docker cp /Users/dkvirus/Downloads/test c605b9afcebd:/home/dkvirus/test

返回首页

本文总阅读量  次
皖ICP备17026209号-3
总访问量: 
总访客量: