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


目录
相关文章
|
5天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
23 2
|
3天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
24天前
|
安全 Docker 容器
|
24天前
|
网络安全 数据安全/隐私保护 Docker
|
23天前
|
存储 监控 安全
|
20天前
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
31 3
|
23天前
|
存储 关系型数据库 MySQL
|
26天前
|
Kubernetes Cloud Native 开发者
探秘云原生计算:Kubernetes与Docker的协同进化
在这个快节奏的数字时代,云原生技术以其灵活性和可扩展性成为了开发者们的新宠。本文将带你深入了解Kubernetes和Docker如何共同塑造现代云计算的架构,以及它们如何帮助企业构建更加敏捷和高效的IT基础设施。
|
1月前
|
网络协议 Docker 容器
docker pull命令拉取镜像失败的解决方案
docker pull命令拉取镜像失败的解决方案
767 1
|
1月前
|
安全 网络安全 开发者
Docker学习笔记(一):Docker命令总结
本文介绍了Docker的基本概念、优点以及常用命令。Docker是一个开源的应用容器引擎,它通过容器打包应用程序及其依赖项,实现快速部署和迁移。主要优点包括轻量级、可移植性、易于管理、安全性和开源性。文章还区分了镜像和容器的概念,并提供了构建镜像、查看容器、运行容器、停止和删除容器等常用Docker命令的示例。
129 0