docker容器操作

Docker容器

容器是Docker的另一个核心概念。简单来说,容器是镜像的一个运行实例。所不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层,同时,容器中的应用进程处于运行状态

如何理解:类->实例,镜像->容器

命令

创建容器(重点)

docker create -it centos:latest

docker create -it --name tomcat01 centos:latest

注1:命令说明

create:关键字

centos:latest:即镜像名字:版本(或镜像ID),将使用指定镜像创建容器。另外,Docker会检查本地是否存在指定的镜像,

不存在就从公有仓库下载

-it:是两个参数,-i:interactive容器具有交互功能,-t:容器将提供伪终端

--name:指定生成的容器的名字,允许空,如果不指定会自动生成

注2:此时,通过如下命令,可以查看到刚刚创建的容器

$ docker ps - a

注3:create命令新建的容器处于停止状态,可以使用start命令来启动它

$ docker start 容器ID

注4:docker容器状态可参考"images/docker容器状态转换图.png"(重点~~~重点~~~重点~~~)

查看当前正在运行的容器

docker ps

加上-a

查看所有容器

启动、停止、重启容器命令

docker start 容器ID或name

docker stop 容器ID或name

docker restart 容器ID或name

删除容器

docker rm 容器ID/容器名称

注1:主要支持的选项包括

-f, --force=false 是否强行终止并删除一个运行中的容器

-1, --link=false :删除容器的连接 ,但保留容器;

-v, --volumes=false :删除容器挂载的数据卷

创建\启动\进入容器(run=create+start)

新建->启动->进入容器

docker run -it centos:latest /bin/bash

指定了端口号

docker run -it -p 7001:8001 centos:latest /bin/bash

使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口

docker run -it -P --name tomcat03 centos:latest /bin/bash

此命令没有进入容器,可以之后再进入

更多的时候,需要让 Docker 容器在后台以守护态( Daemonized )形式运行 此时,可以通过添加-d参数来实现:

docker run -it -d --name webapp centos:latest

docker exec -it webapp /bin/bash

参数说明:

-p:端口映射,格式为:主机(宿主)端口:容器端口

-P: 注意是大写P,使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口

-d:后台运行模式

--name:容器的名字

退出容器

退出时如果想继续运行容器:按顺序按【ctrl+p】,【ctrl+q】

如果不想继续运行:按【ctrl+d】或输入exit

宿主机和docker容器之间复制文件

docker cp 宿主机绝对路径 容器id:路径

查看Docker容器内部信息

进入容器内部获取信息

docker exec -it 容器ID/容器NAME /bin/bash

如果此时已进入容器内部,可分别执行hostname、ip addr、env这三个命令可以获取相关信息

hostname

ip addr

env

在宿主机,执行docker exec命令

获取容器的hostname:docker exec 容器ID/容器NAME hostname

获取容器ip地址:docker exec 容器ID/容器NAME ip addr

获取容器环境变量:docker exec 容器ID/容器NAME env

在宿主机,使用docker inspect命令

推荐使用docker inspect来获取信息,这个命令会返回一个json字符串,里面以key-value的格式准备了该容器相关的信息,

内容十分丰富,可以一次性取得全部内容,也可以返回指定key对应的信息

docker inspect 容器ID/容器NAME

如果我们只对其中的一些感兴趣,例如hostname、ip地址、环境变量,该如何查看呢

查看数据所在节点,根据节点位置编写命令,例如:

hostname位于Config.Hostname这个节点位置,所以执行命令docker inspect -f {{.Config.Hostname}} tomcat001即可获取到hostname

案例(centos)

下载镜像

docker pull centos

创建启动容器

docker run -it centos

加上 /bin/bash还会运行容器

退出容器

exit

查看镜像

docker images

查看运行容器

docker ps

根据id删除容器

docker rm

再创建启动容器,这次给名字,版本

docker run -itd --name c1 centos:latest

进入c1运行容器:

docker exec -it c1 bash

退出,但是不会停止运行

exit

再创建运行并指定端口

docker run -itd --name n1 -p 80:80 nginx

访问IP地址如下图

相关推荐
Escalating_xu8 小时前
【Linux 网络编程】手写序列化与反序列化:从 x op y 到能校验的文本协议
linux·运维·网络
润滑卫士8 小时前
油液多参数融合故障诊断:数据级融合与决策级融合方法
运维
李纲明9 小时前
WordPress 后台登录马上被踢回登录页:Cookie 域、HTTPS、盐值和页面缓存怎么查
运维·缓存·https·php·wordpress·cookie
todoitbo9 小时前
在 Ubuntu ARM64 上运行 Q1 V3.0 MuJoCo 模型:加载、步进和单执行器响应
linux·运维·ubuntu·ai·机器人·仿真教程·启元
AR-26710-10 小时前
Linux Day26——传输层与三次握手
linux·运维
额额额对了11 小时前
嵌入式 Linux 实战:i.MX6ULL 上的 CAN 通信与摄像头采集
linux·运维·服务器
RFID科技的魅力12 小时前
2026 年 RFID 资产标签批量制作怎么做?RFID 标签打印机实操指南
运维·人工智能·嵌入式硬件·物联网
灯澜忆梦12 小时前
【Linux】#10 | Linux 终端实用快捷键 + 安装应用
linux·运维·服务器
OnlyEasyCode14 小时前
IIS开放端口转发后端
运维·服务器
合合技术团队14 小时前
合合信息旗下TextIn面向全球市场推出文档处理自动化公有云服务
运维·自动化