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
相关推荐
咋吃都不胖lyh2 小时前
Docker 是什么?全面解析容器化技术
运维·docker·容器
阿杰 AJie2 小时前
Docker 常用镜像启动参数对照表
运维·docker·容器
我想发发发2 小时前
Linux实现虚拟串口通信-socat
linux·运维·服务器
济6173 小时前
linux 系统移植(第五期)--Uboot移植(4)--在U-Boot 中添加自己的开发板(4) -其他需要修改的地方-- Ubuntu20.04
linux·运维·服务器
老顾聊技术3 小时前
“Anthropic 最新发布的 AI Skills:赋能任务自动化与跨领域应用“
运维·人工智能·自动化
令狐少侠20113 小时前
Linux 系统部署夜莺 nightingale 监控公司的watchdog
linux·运维·服务器
db_cy_20623 小时前
Docker+Kubernetes企业级容器化部署解决方案(阶段一)
docker·容器·kubernetes·云计算·负载均衡·运维开发
百度Geek说4 小时前
百度流式计算开发平台的降本增效之路
运维·云原生
e***98574 小时前
MobaXterm全能运维实战指南
运维