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

【云原生 • Docker】Docker常用命令总结(值得收藏)_第1张图片
上一篇文章大家应该了解和搭建了Docker环境,Docker 是一个开源的应用容器引擎。
直通车:
【云原生 • Docker】初识Docker和Docker的坏境搭建(保姆级教学)

作为一名开发或者运维人员,掌握Dcoker的命令是必不可少的。Docker命令可以让我们更好的利用他提高我们的工作效率。

以下是我个人对Docker学习和使用的一步步总结,通过一个个示例来加深各位对Docker相关命令的理解以及记忆

命令分类

  • 1、Docker 操作命令
  • 2、镜像相关命令
    • 2.1 查询镜像
    • 2.2 搜索镜像
    • 2.3 拉取镜像
    • 2.4 删除镜像
    • 2.5 保存和加载镜像
    • 2.6 镜像标签
    • 2.7 运行镜像
  • 3、容器相关命令
    • 3.1 查看容器
    • 3.2 运行容器
    • 3.3 容器的停止、启动和重启
    • 3.4 容器文件拷贝
    • 3.5 查看容器日志
    • 3.6 目录挂载
    • 3.7 更换容器名
    • 3.8 创建镜像
    • 3.9 查看容器 IP 地址
    • 3.10 删除容器
    • 3.11 导入和导出容器
  • 4、运维相关命令
    • 4.1 查看docker工作目录
    • 4.2 查看docker磁盘占用总体情况
    • 4.3查看Docker的磁盘使用具体情况
    • 4.4 删除异常停止的容器
    • 4.5 删除名称或标签为none的镜像

1、Docker 操作命令

启动 Docker

systemctl start docker

停止 Docker

systemctl stop docker

重启 Docker

systemctl restart docker

查看 Docker 状态

systemctl status docker

【云原生 • Docker】Docker常用命令总结(值得收藏)_第2张图片

开机自动启动Dockers

systemctl enable docker 

查看 Docker 概要信息

docker info 

【云原生 • Docker】Docker常用命令总结(值得收藏)_第3张图片
查看 Docker 版本

docker -v

【云原生 • Docker】Docker常用命令总结(值得收藏)_第4张图片

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

docker --help 

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

docker pull --help

【云原生 • Docker】Docker常用命令总结(值得收藏)_第5张图片

2、镜像相关命令

2.1 查询镜像

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

#查询本地所有镜像
docker images
#查询镜像名为java的镜像列表
docker images java

在这里插入图片描述

列别 说明
repository 镜像名称
tag 标签
image id 镜像ID
created 镜像的创建日期
size 镜像的大小

2.2 搜索镜像

搜索镜像

# 搜索镜像
docker search 镜像名
#搜索用户评价大于400的java镜像
docker search -f=stars=400 java

【云原生 • Docker】Docker常用命令总结(值得收藏)_第6张图片
【云原生 • Docker】Docker常用命令总结(值得收藏)_第7张图片

列别 说明
name 仓库名称
description 镜像描述
stars 用户评价,反映该镜像的受欢迎程度
official 是否官方
automated 该镜像是由 Docker Hub 自动构建流程创建的

2.3 拉取镜像

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

docker pull 镜像名 
docker pull 镜像名:tag
  • 拉取最新版 mysql
docker search mysql

【云原生 • Docker】Docker常用命令总结(值得收藏)_第8张图片在这里插入图片描述

  • 拉取JAVA指定版本号的镜像
docker pull java

出现报错
Using default tag: latest
Error response from daemon: manifest for java:latest not found: manifest unknown: manifest unknown

这里错误的意思是Docker需要我们指定下载镜像的版本号,我们可以去Docker官方镜像搜索
【云原生 • Docker】Docker常用命令总结(值得收藏)_第9张图片

【云原生 • Docker】Docker常用命令总结(值得收藏)_第10张图片

docker pull java:openjdk-7-jre-alpine

【云原生 • Docker】Docker常用命令总结(值得收藏)_第11张图片

2.4 删除镜像

  • 镜像 ID 也可根据镜像名称
docker rmi  镜像ID
  • 删除所有镜像
docker rmi $(docker images -q)
  • 强制删除镜像
docker rmi -f  镜像ID

2.5 保存和加载镜像

#保存镜像
docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
#加载镜像
docker load -i 镜像保存文件位置

【云原生 • Docker】Docker常用命令总结(值得收藏)_第12张图片

2.6 镜像标签

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

docker tag 源镜像名:TAG 想要生成新的镜像名:新的TAG
# 如果省略TAG 则会为镜像默认打上latest TAG
docker tag aaa bbb

在这里插入图片描述
在这里插入图片描述

2.7 运行镜像

docker run 镜像名
docker run 镜像名:Tag

【云原生 • Docker】Docker常用命令总结(值得收藏)_第13张图片

运行后,出现tomcat 默认占用的8080 端口,说明该镜像已经是启动了 ,但是 咱好像鼠标没有回到咱服务器上了 ,这怎么办呢 ?
使用 Ctrl+C (注:此方式虽然可以退出容器,但此种命令操作方式却是错误的,详细缘由请见下文的容器命令)

3、容器相关命令

3.1 查看容器

#查看运行容器
docker ps
#查看所有容器
docker ps -a 
#查看最后一次运行的容器
docker ps -l
#查看停止的容器
docker ps -f status=exited

【云原生 • Docker】Docker常用命令总结(值得收藏)_第14张图片

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  

【云原生 • Docker】Docker常用命令总结(值得收藏)_第15张图片
【云原生 • Docker】Docker常用命令总结(值得收藏)_第16张图片

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

#启动容器
docker start容器名称/ID
#停止容器
docker stop 容器名称/ID
#重启容器
docker restart 容器名称/ID
#kill容器
docker kill 容器ID/容器名

3.4 容器文件拷贝

#从容器内 拷出
docker cp 容器ID/名称:容器内路径  容器外路径
#从外部 拷贝文件到容器内
docker cp 容器外路径 容器ID/名称:容器内路径

【云原生 • Docker】Docker常用命令总结(值得收藏)_第17张图片
【云原生 • Docker】Docker常用命令总结(值得收藏)_第18张图片

3.5 查看容器日志

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

【云原生 • Docker】Docker常用命令总结(值得收藏)_第19张图片

3.6 目录挂载

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

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

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

3.7 更换容器名

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

3.8 创建镜像

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

【云原生 • Docker】Docker常用命令总结(值得收藏)_第20张图片

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 '' | awk '{print $3}'`

如果看到了这里,docker基本上入门了;但前路还长,让我们再继续深入,记得点个关注哟!

你可能感兴趣的:(Linux,云原生/云计算,Centos7,docker,云原生,容器)