容器引擎Docker的常用命令

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 使用docker run命令,即可新建并启动一个容器。对于已停止的容器,可使用 docker start命令来启动

一.镜像相关命令

1.搜索镜像

可使用 docker search命令搜索存放在 Docker Hub中的镜像。执行该命令后, Docker就会在Docker Hub中搜索含有 java这个关键词的镜像仓库

docker search java

e88c317a64bea8dac9982effb2bda15b_2944e2ec30cb46029f138cfa1f62c96a.png

以上列表包含五列,含义如下:


NAME:镜像仓库名称。

DESCRIPTION:镜像仓库描述。

STARS:镜像仓库收藏数,表示该镜像仓库的受欢迎程度,类似于 GitHub的 stars0

OFFICAL:表示是否为官方仓库,该列标记为[0K]的镜像均由各软件的官方项目组创建和维护。

AUTOMATED:表示是否是自动构建的镜像仓库。

2.下载镜像

使用命令docker pull命令即可从 Docker Registry上下载镜像,执行该命令后,Docker会从 Docker Hub中的 java仓库下载最新版本的 Java镜像。如果要下载指定版本则在java后面加冒号指定版本 , 例如 :

docker pull java:8
docker pull nginx

3.列出镜像

使用 docker images命令即可列出已下载的镜像


docker images

42c2e63527a6fb08b648a4b2d559f6ce_885221a280eb4503aea940e73d8b9b4a.png


以上列表含义如下


REPOSITORY:镜像所属仓库名称。

TAG:镜像标签。默认是 latest,表示最新。

IMAGE ID:镜像 ID,表示镜像唯一标识。

CREATED:镜像创建时间。

SIZE: 镜像大小。

4. 删除本地镜像

使用 docker rmi命令即可删除指定镜像,强制删除加 -f


docker rmi java

删除所有镜像

docker rmi $(docker images -q)

二.容器相关命令

3.1.新建并启动容器

使用以下docker run命令即可新建并启动一个容器,该命令是最常用的命令,它有很多选项,下面将列举一些常用的选项。


-d选项:表示后台运行
-P选项:随机端口映射
-p选项:指定端口映射,有以下四种格式。
     -- ip:hostPort:containerPort
     -- ip::containerPort
     -- hostPort:containerPort
     -- containerPort
--net选项:指定网络模式,该选项有以下可选参数:
  --net=bridge:默认选项,表示连接到默认的网桥。
  --net=host:容器使用宿主机的网络。
  --net=container:NAME-or-ID:告诉 Docker让新建的容器使用已有容器的网络配置。
  --net=none:不配置该容器的网络,用户可自定义网络配置
docker run -d -p 8091:80 nginx

这样就能启动一个 Nginx容器。在本例中,为 docker run添加了两个参数,含义如下:


-d 后台运行

-p 宿主机端口:容器端口 #开放容器端口到宿主机端口


访问 http://Docker宿主机 IP:8091/,将会看到nginx的主界面如下:


29dcbc98f2917d91aee7825a0746c639_191cca47b1c746539f480767d2106b39.png

需要注意的是,使用 docker run命令创建容器时,会先检查本地是否存在指定镜像。如果本地不存在该名称的镜像, Docker就会自动从 Docker Hub下载镜像并启动一个 Docker容器。


2.列出容器

用 docker ps命令即可列出运行中的容器


docker ps

8ced364c320ed4cbfc82a1439011b33b_b2c5f09ae50341cc89902fd0daad4338.png

如需列出所有容器(包括已停止的容器),可使用-a参数。该列表包含了7列,含义如下


CONTAINER_ID:表示容器 ID。

IMAGE:表示镜像名称。

COMMAND:表示启动容器时运行的命令。

CREATED:表示容器的创建时间。

STATUS:表示容器运行的状态。UP表示运行中, Exited表示已停止。

PORTS:表示容器对外的端口号。

NAMES:表示容器名称。该名称默认由 Docker自动生成,也可使用 docker run命令的–name选项自行指定。

3. 停止容器

使用 docker stop命令,即可停止容器

docker stop fa4f759234fa

其中fa4f759234fa是容器 ID,当然也可使用 docker stop容器名称来停止指定容器


4.强制停止容器

可使用 docker kill命令发送 SIGKILL信号来强制停止容器

docker kill fa4f759234fa

5.启动已停止的容器

使用docker run命令,即可新建并启动一个容器。对于已停止的容器,可使用 docker start命令来启动

docker start fa4f759234fa

6.查看容器的所有信息

docker inspect fa4f759234fa

7.查看容器日志

docker container logs fa4f759234fa

8.查看容器里的进程

docker top fa4f759234fa

9.容器与宿主机相互复制文件

从容器里面拷文件到宿主机:


docker cp 容器id:要拷贝的文件在容器里面的路径 宿主机的相应路径


docker cp fa4f759234fa:/etc/nginx/nginx.conf /mydata/nginx

从宿主机拷文件到容器里面:


docker cp 要拷贝的宿主机文件路径 容器id:要拷贝到容器里面对应的路径


docker cp /mydata/nginx fa4f759234fa:/etc/nginx/nginx.conf 

10.进入容器

使用docker exec命令用于进入一个正在运行的docker容器。如果docker run命令运行容器的时候,没有使用-it参数,就要用这

个命令进入容器。一旦进入了容器,就可以在容器的 Shell 执行命令了


docker exec ‐it f0b1c8ab3633 /bin/bash (有的容器需要把 /bin/bash 换成 sh)

11.容器内安装vim、ping、ifconfig等指令

apt-get update
apt-get install vim #安装vim
apt-get install iputils-ping #安装ping
apt-get install net-tools #安装ifconfig


12.删除容器

使用 docker rm命令即可删除指定容器

docker rm fa4f759234fa

该命令只能删除已停止的容器,如需删除正在运行的容器,可使用-f参数

强制删除所有容器


docker rm -f $(docker ps -a -q)


相关实践学习
通过ACR快速部署网站应用
本次实验任务是在云上基于ECS部署Docker环境,制作网站镜像并上传至ACR镜像仓库,通过容器镜像运行网站应用,网站运行在Docker容器中、网站业务数据存储在Mariadb数据库中、网站文件数据存储在服务器ECS云盘中,通过公网地址进行访问。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
541 108
|
3月前
|
存储 监控 测试技术
如何将现有的应用程序迁移到Docker容器中?
如何将现有的应用程序迁移到Docker容器中?
315 57
|
20天前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
12天前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
148 5
|
13天前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
101 6
|
12天前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
212 82
|
3月前
|
安全 Unix Linux
Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误。
通过上述步骤,可以有效解决普通用户无法使用Docker命令的问题,同时处理 `/var/run/docker.sock`权限错误。这样的设置不仅方便用户使用Docker提供的各项服务,同时还能保护系统的安全性。在进行此类配置更改时,请确保理解每一步骤的作用及潜在的安全风险,尤其是在修改文件权限时。在实际的操作中,始终应该努力保持系统的最低必要权限,避免过度放宽权限,这是保障系统安全的一个重要方针。
935 75

热门文章

最新文章