Docker 容器基本操作

Docker 容器基本操作

运行容器

使用 docker run 命令启动容器。例如,运行一个 Ubuntu 容器并进入交互式终端:

bash 复制代码
docker run -it ubuntu /bin/bash
  • -it:分配交互式终端。
  • ubuntu:镜像名称。
  • /bin/bash:启动后执行的命令。

列出容器

查看正在运行的容器:

bash 复制代码
docker ps

查看所有容器(包括已停止的):

bash 复制代码
docker ps -a

停止与启动容器

停止运行中的容器:

bash 复制代码
docker stop <容器ID或名称>

启动已停止的容器:

bash 复制代码
docker start <容器ID或名称>

删除容器

删除已停止的容器:

bash 复制代码
docker rm <容器ID或名称>

强制删除运行中的容器:

bash 复制代码
docker rm -f <容器ID或名称>

容器与主机文件交互

复制文件到容器

将主机文件复制到容器内:

bash 复制代码
docker cp /host/path/file.txt <容器ID>:/container/path/

从容器复制文件

将容器内文件复制到主机:

bash 复制代码
docker cp <容器ID>:/container/path/file.txt /host/path/

挂载数据卷

启动时挂载主机目录到容器:

bash 复制代码
docker run -v /host/path:/container/path ubuntu
  • /host/path:主机目录路径。
  • /container/path:容器内挂载路径。

容器网络配置

映射端口

将容器端口映射到主机端口:

bash 复制代码
docker run -p 8080:80 nginx
  • 8080:主机端口。
  • 80:容器内服务端口。

查看容器网络信息

显示容器网络配置:

bash 复制代码
docker inspect <容器ID> | grep IPAddress

自定义网络

创建自定义网络并运行容器:

bash 复制代码
docker network create my_network
docker run --network=my_network --name=my_container ubuntu

容器日志与监控

查看日志

输出容器日志:

bash 复制代码
docker logs <容器ID>

实时跟踪日志:

bash 复制代码
docker logs -f <容器ID>

资源监控

查看容器资源使用情况:

bash 复制代码
docker stats <容器ID>

容器持久化与数据管理

使用数据卷

创建命名数据卷并挂载:

bash 复制代码
docker volume create my_volume
docker run -v my_volume:/container/path ubuntu

备份数据卷

备份数据卷到主机:

bash 复制代码
docker run --rm -v my_volume:/data -v /backup:/backup ubuntu tar cvf /backup/backup.tar /data

容器与镜像管理

提交容器为镜像

将容器修改保存为新镜像:

bash 复制代码
docker commit <容器ID> my_new_image

导出与导入容器

导出容器为文件:

bash 复制代码
docker export <容器ID> > container.tar

导入文件为镜像:

bash 复制代码
docker import container.tar my_imported_image

多容器编排(Docker Compose)

编写 docker-compose.yml

示例文件:

yaml 复制代码
version: '3'
services:
  web:
    image: nginx
    ports:
      - "80:80"
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: example

启动服务

运行多容器应用:

bash 复制代码
docker-compose up -d

停止服务:

bash 复制代码
docker-compose down

容器安全实践

限制资源

限制容器内存和CPU使用:

bash 复制代码
docker run --memory=1g --cpus=2 ubuntu

以非 root 用户运行

指定容器内用户:

bash 复制代码
docker run --user 1000 ubuntu

只读文件系统

启动只读容器:

bash 复制代码
docker run --read-only ubuntu
相关推荐
蝎子莱莱爱打怪24 分钟前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
碳基沙盒9 小时前
OpenClaw 多 Agent 配置实战指南
运维
小p1 天前
docker学习7:docker 容器的通信方式
docker
小p1 天前
docker学习5:提升Dockerfile水平的5个技巧
docker
小p1 天前
docker学习3:docker是怎么实现的?
docker
小p2 天前
docker学习: 2. 构建镜像Dockerfile
docker
小p3 天前
docker学习: 1. docker基本使用
docker
蝎子莱莱爱打怪3 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
崔小汤呀3 天前
Docker部署Nacos
docker·容器
缓解AI焦虑3 天前
Docker + K8s 部署大模型推理服务:资源划分与多实例调度
docker·容器