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
相关推荐
zx_7414848118 分钟前
【Linux入门】Shell 函数、正则表达式与文本处理:cut 与 awk
linux·运维·正则表达式
Zenova EdgeOS29 分钟前
Linux dmesg 工业边缘实战:内核日志过滤、持久化与故障定位
linux·运维·边缘计算·工业边缘·dmesg·内核日志
九皇叔叔32 分钟前
K8S 资源菜单
docker·容器·kubernetes·k8s
wdfk_prog1 小时前
ROS教程08:从 TransportTCP::connect() 追到 TCPROS Connection Header、序列化与 Socket 数据传输
运维·缓存·docker·容器·ros
Zhu7582 小时前
docker环境快速部署postgresql数据库18及以上版本
postgresql·容器
做运维的阿瑞2 小时前
Python 标准库汇总:分类速览与常用模块清单
linux·运维·python
zoutao982 小时前
Gitea Actions 自定义 Runner 镜像与自动化部署实战
ci/cd·docker·gitea
日常筹谋记3 小时前
自动化仓储安全防护工况评估:明治传感器AS-33C技术适配性分析
大数据·运维·创业创新·业界资讯
Shadow(⊙o⊙)3 小时前
Linux进阶知识1.0
linux·运维·服务器
安易算力4 小时前
PUE优化工程实践:从1.5到1.2的制冷架构与气流组织改造路径
网络·python·容器·架构·kubernetes