Docker之容器管理基础

简介: Docker之容器管理基础

容器是Docker的另一个核心概念。

简单来说容器就是镜像的一个运行实例。

本次操作的运行环境为:

系统版本:centos7.4.1708

Docker版本:19.03.8

本部分内容将会进行对容器的创建、进入、停止、删除等操作进行讲解。

————————————————————————————————

创建容器:

新建容器:docker [container] create

注:由于container可以省略,所以后续部分命令将进行省略。

使用docekr create创建的容器处于停止状态,可以使用docker start命令启动

例:

# docker create -it busybox:latest

新建并启动容器:docker run

相当于docker createdocker start命令相结合。

启动容器后,可以通过docekr ps命令查看正在运行的容器。

例:

# docker run ubuntu:latest /bin/echo 'hello world'
hello world

使用docker run命令来创建并启动容器时,Docker在后台的操作流程如下:

  • 检查本地是否存在指定镜像,如果没有就从公有仓库下载
  • 利用镜像创建一个容器并启动
  • 分配一个文件系统个容器,并在只读的镜像层外挂载一层可写层
  • 从宿主机配置的网桥接口中桥接一个虚拟接口到容器中
  • 从网桥的地址池中分配一个ip地址给容器
  • 执行用户指定的应用程序
  • 执行完毕后容器终止

有时执行docker run命令会无法正常执行容器会报错直接退出,常见的错误代码如下:

  • 125:Docker daemon执行出错,例如指定了不支持的Docker命令参数
  • 126:所指定命令无法执行,例如权限出错
  • 127:容器内命令无法找到

create命令与容器运行模式/环境和配置常用选项:

选项 说明
-d 是否在后台运行容器,默认为否
- -group-add=[] 运行容器的用户组
-i 保持标准输入打开
-P 随机端口映射
-p 指定端口映射到本地端口,例 80:80
- -restart=“always” 容器的重启策略,包括no,always等
- -rm=true/false 容器退出后是否自动删除,不能与-d同时使用
-t 分配一个伪终端
-v 挂在主机上的文件卷到容器内
-w 容器内的默认工作目录
- -device=[] 映射物理机上设备到容器
-e 指定容器内环境变量
-h 指定容器内主机名
- -ip=“” 指定容器的ip地址
- -link=[:aklias] 链接到其他容器
- -name 指定容器的别名

停止容器:

暂停容器:docker pause

例:启动一个容器并将它暂停

# docker run -d -p 80:80 --name web nginx:latest
# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
1b52669a4ce3        nginx:latest        "nginx -g 'daemon of…"   3 minutes ago       Up 3 minutes        0.0.0.0:80->80/tcp   web
# docker pause web
web

可通过docker unpause命令进行恢复。

停止容器:docker stop

将一个正在运行的容器停止。

可用docker container prune命令将停止的容器清除。

可用docker start命令将停止的容器启动。

可用docker ps查看正在运行的容器。

可用docker ps -qa查看所有容器的ID。

可用docker restart命令重启运行的容器。

例:将一个运行的容器停止。

# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
1b52669a4ce3        nginx:latest        "nginx -g 'daemon of…"   6 minutes ago       Up 6 minutes        0.0.0.0:80->80/tcp   web
# docker stop web
web
# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

进入容器:

直接讲一个常用的命令:exec

命令格式:docker exec [参数] [容器]

常用参数:

  • -e:指定环境变量列表
  • -i:打开标准输入
  • -t:分配一个伪终端
  • -u:指定命令的用户名或ID
    例:开启另一个终端
# docker exec -ti web bash
root@1b52669a4ce3:/#

删除容器:

删除容器:docker rm

默认删除处于终止或退出状态的容器。

输入命令docker rm -f 删除处于运行中的容器

输入命令docker ps -a查看终止状态的容器

例:删除处于终止状态的容器

# docker rm web


目录
相关文章
|
13天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
142 77
|
21天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
14天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
55 3
|
21天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
54 7
|
21天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
30 5
|
21天前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
49 4
|
21天前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
49 3
|
21天前
|
存储 安全 数据安全/隐私保护
Docker 容器化应用管理更加高效,但数据安全和业务连续性成为关键。
在数字化时代,Docker 容器化应用管理更加高效,但数据安全和业务连续性成为关键。本文探讨了 Docker 应用的备份与恢复策略,涵盖备份的重要性、内容、方法及常见工具,制定备份策略,恢复流程及注意事项,并通过案例分析和未来趋势展望,强调备份与恢复在保障应用安全中的重要性。
26 2
|
21天前
|
存储 安全 数据中心
Docker 容器凭借轻量级和高效的特性,成为应用部署的重要工具
Docker 容器凭借轻量级和高效的特性,成为应用部署的重要工具。本文探讨了 Docker 如何通过 Namespace 和 Cgroups 实现 CPU、内存、网络和存储资源的隔离,提高系统安全性和资源利用率,以及面临的挑战和应对策略。
37 1
|
23天前
|
运维 Kubernetes Docker
深入理解容器化技术:Docker与Kubernetes的协同工作
深入理解容器化技术:Docker与Kubernetes的协同工作
43 1
下一篇
DataWorks