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
相关推荐
EverydayJoy^v^26 分钟前
RH134学习进程——十二.运行容器(1)
linux·运维·容器
java_logo42 分钟前
OpenProject Docker 容器化部署指南:从快速启动到生产环境配置
docker·容器·openproject·openproject部署·openproject部署手册·openproject部署方案·openproject部署教程
b***251144 分钟前
电池组PACK自动化生产线的关键流程与核心优势
运维·自动化
曦云沐2 小时前
【避坑指南】Ubuntu更新报错“Repository is not signed”的快速修复
linux·ubuntu·docker
哲伦贼稳妥2 小时前
职场发展-遇到以下情况请直接准备后手吧
运维·经验分享·其他·职场和发展
Exquisite.3 小时前
企业高性能web服务器(4)
运维·服务器·前端·网络·mysql
北塔软件3 小时前
北塔方案 | 政府行业IT运维解决方案
运维·it运维·解决方案·政务
cg_ssh4 小时前
Docker 下启动 Nacos 3.1.1 单机模式
运维·docker·容器
修己xj4 小时前
使用 Docker 部署 SQL Server 并导入 .mdb 文件的完整指南
运维·docker·容器
郝亚军5 小时前
ubuntu-18.04.6-desktop-amd64安装步骤
linux·运维·ubuntu