【云原生 • Docker】Docker常用命令总结(值得收藏)

简介: 上一篇文章大家应该了解和搭建了Docker环境,Docker 是一个开源的应用容器引擎。【云原生 • Docker】初识Docker和Docker的坏境搭建(保姆级教学)作为一名开发或者运维人员,掌握Dcoker的命令是必不可少的。Docker命令可以让我们更好的利用他提高我们的工作效率。以下是我个人对Docker学习和使用的一步步总结,通过一个个示例来加深各位对Docker相关命令的理解以及记忆

1、Docker 操作命令

启动 Docker


systemctl start docker


停止 Docker


systemctl stop docker


重启 Docker


systemctl restart docker


查看 Docker 状态


systemctl status docker

微信图片_20230527160419.png

开机自动启动Dockers


systemctl enable docker


查看 Docker 概要信息


docker info

微信图片_20230527160446.png

查看 Docker 版本


docker -vocker -v

微信图片_20230527160457.png

查看 Docker 帮助文档, 忘记了某些命令便可使用此进行查看与回顾


docker --help


如忘记拉取命令,可以如下使用


docker pull --help

微信图片_20230527160500.png



2、镜像相关命令

2.1 查询镜像

这些镜像都存储于 /var/lib/docker 目录下


#查询本地所有镜像

docker images

#查询镜像名为java的镜像列表

docker images java

微信图片_20230527160528.png


列别 说明

repository 镜像名称

tag 标签

image id 镜像ID

created 镜像的创建日期

size 镜像的大小

2.2 搜索镜像

搜索镜像


# 搜索镜像

docker search 镜像名

#搜索用户评价大于400的java镜像

docker search -f=stars=400 java

微信图片_20230527160540.png

微信图片_20230527160544.png


列别 说明

name 仓库名称

description 镜像描述

stars 用户评价,反映该镜像的受欢迎程度

official 是否官方

automated 该镜像是由 Docker Hub 自动构建流程创建的

2.3 拉取镜像

不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本


docker pull 镜像名

docker pull 镜像名:tag

拉取最新版 mysql

docker search mysql

微信图片_20230527160610.png

微信图片_20230527160612.png


拉取JAVA指定版本号的镜像

docker pull java


出现报错

Using default tag: latest

Error response from daemon: manifest for java:latest not found: manifest unknown: manifest unknown

这里错误的意思是Docker需要我们指定下载镜像的版本号,我们可以去Docker官方镜像搜索

微信图片_20230527160616.png

微信图片_20230527160619.png



docker pull java:openjdk-7-jre-alpine

微信图片_20230527160653.png

2.4 删除镜像

镜像 ID 也可根据镜像名称

docker rmi  镜像ID


删除所有镜像

docker rmi $(docker images -q)


强制删除镜像

docker rmi -f  镜像ID


2.5 保存和加载镜像

#保存镜像

docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字

#加载镜像

docker load -i 镜像保存文件位置

微信图片_20230527160707.png


2.6 镜像标签

镜像做一个标签添加,从而行进区分


docker tag 源镜像名:TAG 想要生成新的镜像名:新的TAG

# 如果省略TAG 则会为镜像默认打上latest TAG

docker tag aaa bbb

微信图片_20230527160710.png


2.7 运行镜像

docker run 镜像名

docker run 镜像名:Tag

运行后,出现tomcat 默认占用的8080 端口,说明该镜像已经是启动了 ,但是 咱好像鼠标没有回到咱服务器上了 ,这怎么办呢 ?

使用 Ctrl+C (注:此方式虽然可以退出容器,但此种命令操作方式却是错误的,详细缘由请见下文的容器命令)

微信图片_20230527160714.png

3、容器相关命令

3.1 查看容器

#查看运行容器

docker ps

#查看所有容器

docker ps -a

#查看最后一次运行的容器

docker ps -l

#查看停止的容器

docker ps -f status=exited

微信图片_20230527160739.png

3.2 运行容器

docker run 镜像名

docker run 镜像名:Tag

-i 运行容器

-t 容器启动后自动进入其命令行

–name 为创建的容器命名

-v 表示目录映射关系,前者为宿主机目录,后者是映射到宿主机上的目录

-d 加了这个参数则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器)

-p 表示端口映射,前者为宿主机端口,后者是容器内的映射端口

常用创建容器的方式为交互式创建容器和守护式创建容器,如下:

#交互式创建容器

docker run -it --name=容器名称 镜像名称:标签 /bin/bash

#守护式创建容器

docker run -di --name=容器名称 镜像名称:标签

#登录守护式容器

docker exec -it 容器名称/ID /bin/bash

从容器内退出到自己服务器中,需注意两个退出命令的区别

#直接退出  未添加 -d(守护式容器) 时 执行此参数 容器会被关闭  

exit

#优雅退出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭

Ctrl + p + q

创建一个tomca容器

docker run -id -p 8080:8080 --name=test17 tomcat1:test

# netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息

netstat -untlp  

微信图片_20230527160756.png

微信图片_20230527160759.png

3.3 容器的停止、启动和重启

#启动容器

docker start容器名称/ID

#停止容器

docker stop 容器名称/ID

#重启容器

docker restart 容器名称/ID

#kill容器

docker kill 容器ID/容器名


3.4 容器文件拷贝

#从容器内 拷出

docker cp 容器ID/名称:容器内路径  容器外路径

#从外部 拷贝文件到容器内

docker cp 容器外路径 容器ID/名称:容器内路径

微信图片_20230527160818.png微信图片_20230527160821.png

3.5 查看容器日志

docker logs --tail=要查看末尾多少行 默认all 容器ID

微信图片_20230527160824.png

3.6 目录挂载

在创建容器时,我们可以将宿主机的目录与容器内的目录进行映射,这样就可以通过修改宿主机的目录文件从而直接影响容器了。


docker run -di -v 宿主机目录:容器目录 --name=容器名称 镜像名称:标签


-v命令可以多次使用,即一个容器可以同时挂载多个文件,当容器删除时,宿主机文件数据目录仍在,下次启动容器只要将数据目录指向宿主机数据所在位置即可恢复!


3.7 更换容器名

docker rename 容器ID/容器名 新容器名


3.8 创建镜像

docker commit -a="作者" -m="说明" 容器ID/容器名 镜像名:标签

微信图片_20230527160900.png



3.9 查看容器 IP 地址

# 查看容器 ip 以及相关的各种数据

docker inspect 容器名称/ID  

# 查看容器 ip 地址并输出

docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称/ID  

3.10 删除容器

#删除一个容器

docker rm -f 容器名/容器ID

#删除多个容器 空格隔开要删除的容器名或容器ID

docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID

#删除全部容器

docker rm -f $(docker ps -aq)

3.11 导入和导出容器

#导出容器

docker export 容器ID > XXX.tar

#import 从tar包中的内容创建一个新的文件系统再导入为镜像

cat XXX.tar | docker import  - 镜像名:标签

4、运维相关命令

4.1 查看docker工作目录

docker info | grep "Docker Root Dir"

4.2 查看docker磁盘占用总体情况

du -hs /var/lib/docker/


4.3查看Docker的磁盘使用具体情况

docker system df


删除 无用的容器和 镜像


4.4 删除异常停止的容器

docker rm `docker ps -a | grep Exited | awk '{print $1}'`


4.5 删除名称或标签为none的镜像

docker rmi -f  `docker images | grep '<none>' | awk '{print $3}'`


如果看到了这里,docker基本上入门了;


目录
相关文章
|
1月前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
348 124
|
1月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
337 2
|
4月前
|
安全 Unix Linux
Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误。
通过上述步骤,可以有效解决普通用户无法使用Docker命令的问题,同时处理 `/var/run/docker.sock`权限错误。这样的设置不仅方便用户使用Docker提供的各项服务,同时还能保护系统的安全性。在进行此类配置更改时,请确保理解每一步骤的作用及潜在的安全风险,尤其是在修改文件权限时。在实际的操作中,始终应该努力保持系统的最低必要权限,避免过度放宽权限,这是保障系统安全的一个重要方针。
1420 75
|
5月前
|
Docker 容器
Docker run命令-p参数详解
本文介绍Docker端口映射的基础用法。通过`docker run -p &lt;宿主机端口&gt;:&lt;容器端口&gt;`实现端口映射,例如`-p 5000:80`将宿主机5000端口映射到容器80端口,外部访问宿主机5000端口时流量会转发至容器内部的80端口。示例命令中,`-d`用于后台运行,`--restart=always`确保容器自动重启,`--name`指定容器名称。部署完成后可通过`http://服务器IP地址:5000`验证服务是否正常运行。
|
4月前
|
Docker 容器
熟悉Docker容器管理命令:start、stop与restart详细使用指南
掌握这些Docker容器管理命令对于维护应用程序的正常运行至关重要。在实际操作中,应注意容器配置、关联资源以及日志等信息,确保各项操作都能够顺畅并且安全地执行。
609 0
|
6月前
|
网络协议 Ubuntu Docker
Docker Compose--命令说明
Docker Compose--命令说明
1111 30
|
6月前
|
Ubuntu Linux 开发者
常用的Docker命令:docker_cmd_sheet
以上就是一些常用的Docker命令,希望能帮助你更好地驾驭这个强大的工具。记住,Docker就像是一个魔法咒语,只有真正理解和熟练使用,才能发挥出它的最大魔力。
160 22
|
6月前
|
Shell 应用服务中间件 nginx
docker 镜像的部分常用命令
docker镜像常用命令
231 16
|
6月前
|
关系型数据库 MySQL Docker
|
6月前
|
关系型数据库 MySQL 数据库
Docker 安装常用软件相关命令
本文介绍了在CentOS 7.9系统上安装Docker的详细步骤,包括添加阿里云镜像源、安装Docker及相关组件、启动服务以及配置镜像加速。同时,还展示了如何通过Docker安装MySQL 5.7版本数据库,涵盖拉取镜像、创建数据目录、运行容器及配置挂载点等操作,并提供验证安装成功的命令和截图。适合需要部署Docker与MySQL环境的用户参考。
370 5