【云原生 • 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基本上入门了;


目录
相关文章
|
27天前
|
Kubernetes Cloud Native 开发者
构建高效的云原生应用:Docker与Kubernetes的完美搭档
【5月更文挑战第29天】 在现代软件开发领域,"云原生"这一术语已经成为高效、可扩展和弹性的代名词。本文将深入探讨如何通过Docker容器化技术和Kubernetes集群管理工具实现云原生应用的构建和管理。我们将剖析Docker的核心原理,揭示其轻量级和易于部署的特点,并进一步探索Kubernetes如何为这些容器提供编排,保证应用的高可用性与自动扩缩容。文章不仅讨论了二者的技术细节,还提供了实践案例,帮助开发者理解并运用这些技术构建和维护自己的云原生应用。
|
5天前
|
Cloud Native 安全 Docker
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
|
8天前
|
Docker 容器
docker network inspect 查询出来的网络的创建命令是什么
【6月更文挑战第17天】docker network inspect 查询出来的网络的创建命令是什么
17 1
|
13天前
|
Ubuntu 应用服务中间件 Linux
Docker基本操作命令
Docker 允许用户基于现有的容器或通过 Dockerfile 自定义镜像。Dockerfile 是一个文本文件,包含了创建镜像所需的所有命令。 命令: docker build [OPTIONS] PATH PATH:Dockerfile 所在的路径 OPTIONS:构建过程中的可选参数,如 -t 用于标记镜像名和标签 例如,使用当前目录的 Dockerfile 来构建镜像,并标记为 my_image:latest: docker build -t my_image:latest . 以上是 Docker 基础命令的简介,通过这些命令,你可以开始探索 Docker 的强大功能,并将其
30 2
|
18天前
|
Shell Docker 容器
深入探索Docker容器管理:常用命令一览(1)
深入探索Docker容器管理:常用命令一览(1)
|
19天前
|
关系型数据库 应用服务中间件 nginx
docker基础,docker安装mysql,docker安装Nginx,docker安装mq,docker基础命令
docker基础,docker安装mysql,docker安装Nginx,docker安装mq,docker基础命令
|
20天前
|
Docker 容器
docker命令大全
docker命令大全
|
26天前
|
Linux Docker 容器
蓝易云 - 【Linux】如何在linux系统重启或启动时执行命令或脚本(也支持docker容器内部)
以上就是在Linux系统和Docker容器中设置启动时运行命令或脚本的方法。希望对你有所帮助。
97 0
|
26天前
|
流计算 Docker 容器
在docker中玩flink时候记录一些组合命令
在docker中玩flink时候记录一些组合命令
19 0
|
Cloud Native NoSQL Java
云原生时代必须具备的核心技能之Docker高级篇(DockerCompose-容器编排)
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
云原生时代必须具备的核心技能之Docker高级篇(DockerCompose-容器编排)

热门文章

最新文章