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
相关推荐
D2aZXN3FhrDa7e2121 小时前
佛山乐从低预算实体店如何选择?看美诚AI自动化获客方案
运维·人工智能·自动化·佛山美诚科技有限公司
BullSmall2 小时前
Sonarqube9.9 docker 镜像启动后 conf 下的配置文件没有了
docker·容器·eureka
无足鸟ICT2 小时前
【RHCA+】查看变量
linux·运维·服务器
ruofu332 小时前
wsl端是py312,但是项目是py311, 如何下载py311的依赖包(wheels)
python·docker
Kina_C2 小时前
Linux DNS 服务器-从高速缓存到辅助 DNS 部署指南
linux·运维·服务器·dns
suaizai_2 小时前
TypeScript 7 正式发布!Vue 暂被 “拒之门外“ !!!
linux·运维·ubuntu
spider_xcxc3 小时前
Docker 实战:容器化多服务应用,Dockerfile 与 Compose 配置全解析
docker·云原生·eureka·虚拟化·容器化
慕伏白3 小时前
【慕伏白】Linux 系统如何根据端口号关闭进程
linux·运维·服务器
letisgo53 小时前
VMware Workstation + Ubuntu 26.04 LTS 小白运维部署手册
linux·运维·ubuntu
hay_lee3 小时前
Kubernetes StatefulSet:OrderedReady 极简指南
云原生·容器·kubernetes