Java技术债务Java技术债务

  •  首页
  •  分类
  •  归档
  •  标签
  • 博客日志
  • 资源分享
  •  友链
  •  关于本站
注册
登录

Docker常用命令(五)

Docker

文章目录

  • Docker
  • 基础命令
  • Docker
  • 镜像命令
  • Docker容器相关命令
  • Docker
  • 运维命令

Docker 基础命令

  • 启动docker

systemctl start docker

  • 关闭docker

systemctl stop docker

  • 重启docker

systemctl restart docker

  • docker设置随服务启动而自启动

systemctl enable docker

  • 查看docker 运行状态

systemctl status docker

如果是在运行中 输入命令后 会看到绿色的active Docker常用命令(五) - Java技术债务

  • 查看docker 版本号信息

docker version docker info

  • docker 帮助命令

docker --help

忘记了某些命令便可使用此进行查看与回顾,比如 咱忘记了 拉取命令 不知道可以带哪些参数 咱可以这样使用

docker pull --help

Docker 镜像命令

  • 查看自己服务器中docker 镜像列表

docker images

  • 搜索镜像

docker search 镜像名

搜索 STARS >9000的 mysql 镜像 docker search --filter=STARS=9000 mysql

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

docker pull 镜像名 docker pull 镜像名:tag

Docker常用命令(五) - Java技术债务

如果搜索的镜像不知道tag的话,可以去docker官网查询docker官方镜像搜索

Docker常用命令(五) - Java技术债务

  • 运行镜像

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

注意:docker run 镜像名这种简单方式启动的话,只能临时启动,并不是后台启动;如果窗口关闭,镜像会自动停止。不过有持久运行 映射端口 设置容器别名 数据卷挂载等

Docker常用命令(五) - Java技术债务

  • 查看docker当前的容器 镜像启动后都会有一个对应的容器

查看当前运行的容器 docker ps 查看所有容器 docker ps -a

  • 删除容器

docker rm 容器id

  • 删除镜像

删除一个 docker rmi -f 镜像名/镜像ID 删除多个 其镜像ID或镜像用用空格隔开即可 docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID 删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID docker rmi -f $(docker images -aq)

注意: 如果镜像已经启动过(无论是运行状态还是终止状态),容器中已经存在改镜像,那么,先删除容器。

Docker常用命令(五) - Java技术债务

  • 强制删除镜像

docker image rm 镜像名称/镜像ID

  • 保存镜像 将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后 可以在任何一台安装了docker的服务器上 加载这个镜像

docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字 eg: docker save tomcat -o /opt/data/docker/docker-image.tar

  • 加载镜像 任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像

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

  • Dockerfile创建镜像 语法:docker build [OPTIONS] PATH | URL | - OPTIONS说明:
  • **-build-arg=[] :**设置镜像创建时的变量;
  • **-cpu-shares :**设置 cpu 使用权重;
  • **-cpu-period :**限制 CPU CFS周期;
  • **-cpu-quota :**限制 CPU CFS配额;
  • **-cpuset-cpus :**指定使用的CPU id;
  • **-cpuset-mems :**指定使用的内存 id;
  • **-disable-content-trust :**忽略校验,默认开启;
  • **f :**指定要使用的Dockerfile路径;
  • **-force-rm :**设置镜像过程中删除中间容器;
  • **-isolation :**使用容器隔离技术;
  • **-label=[] :**设置镜像使用的元数据;
  • **m :**设置内存最大值;
  • **-memory-swap :**设置Swap的最大值为内存+swap,"-1"表示不限swap;
  • **-no-cache :**创建镜像的过程不使用缓存;
  • **-pull :**尝试去更新镜像的新版本;
  • **-quiet, -q :**安静模式,成功后只输出镜像 ID;
  • **-rm :**设置镜像成功后删除中间容器;
  • **-shm-size :**设置/dev/shm的大小,默认值是64M;
  • **-ulimit :**Ulimit配置。
  • **-squash :**将 Dockerfile 中所有的操作压缩为一层。
  • -tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
  • -network: 默认 default。在构建期间设置RUN指令的网络模式

Docker常用命令(五) - Java技术债务

Docker容器相关命令

  • 查看docker当前的容器 镜像启动后都会有一个对应的容器,就好比 咱java中的new出来对象(docker run 镜像产生一个该镜像具体容器实例),docker 容器的启动需要镜像的支持

查看当前运行的容器 docker ps

查看所有容器 docker ps -a

  • 运行容器
 -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行)  --name 给要运行的容器 起的名字  /bin/bash  交互路径
docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash

例如我们要启动一个redis 把它的别名取为redis001 并交互式运行 需要的命令 —我这里指定版本号为5.0.5

	拉取redis 镜像
	docker pull redis:5.0.5
	命令启动
	docker run -it -d --name redis001 redis:5.0.5 /bin/bash

注意: 如果是这样启动的话,redis默认端口6379,只是占用了当前redis容器的6379端口。占用的6379端口 仅仅是在容器中内部本身的端口,与宿主机的6379端口并无联系

每一个 Docker容器都是独立和安全的应用平台(我们可以理解为,每一个docker容器都相当于在我们的服务器上占用资源然后开辟了属于自己的一个空间(也可以理解为服务器))

  • 停止容器
 先停止咱之前运行的 redis 容器 
docker stop 容器名/容器ID
  • 删除容器
删除一个容器
docker rm -f 容器名/容器ID

删除多个容器 空格隔开要删除的容器名或容器ID
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID

删除全部容器
docker rm -f $(docker ps -aq)

Docker常用命令(五) - Java技术债务

  • 容器端口与服务器端口映射

-p 宿主机端口:容器端口

eg:启动redis指定宿主机端口6380和容器端口6379

docker run -itd --name redis002 -p 6380:6379 redis:5.0.5 /bin/bash

Docker常用命令(五) - Java技术债务

注意: 一旦宿主机的端口被占用就不能再次被指定,因为宿主机的端口只能是1对1。

  • 进入镜像容器
docker exec -it 容器名/容器ID /bin/bash
或者
docker attach 容器名/容器ID
  • 退出镜像容器

exit

  • 停止容器

docker stop 容器ID/容器名

  • 重启容器

docker restart 容器ID/容器名

  • 启动容器

docker start 容器ID/容器名

  • kill 容器

docker kill 容器ID/容器名

  • 容器文件拷贝 无论容器是否开启 都可以进行拷贝
docker cp 容器ID/名称:文件路径  要拷贝到外部的路径   |     要拷贝到外部的路径  容器ID/名称:文件路径
从容器内 拷出
docker cp 容器ID/名称: 容器内路径  容器外路径
从外部 拷贝文件到容器内
docker  cp 容器外路径 容器ID/名称: 容器内路径
  • 查看容器日志

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

  • 容器开机自启 容器启动时添加参数--restart=always 该容器随docker服务启动而自动启动
docker run -itd --name redis002 -p 6380:6379 --restart=always  redis:5.0.5 /bin/bash
或者
 不想删除容器的话
docker  update --restart=always 容器Id 或者 容器名
或
docker container update --restart=always 容器Id 或者 容器名
  • 容器挂载 将容器内的数据与外部宿主机文件绑定起来,类似一个双持久化,当容器删除时,宿主机文件数据目录仍在,下次启动容器只要将数据目录指向宿主机数据所在位置即可恢复! 容器启动时添加参数-v 宿主机文件存储位置:容器内文件位置 如此操作,就将 容器内指定文件挂载到了宿主机对应位置,-v命令可以多次使用,即一个容器可以同时挂载多个文件 v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置
 运行一个docker redis 容器 进行 端口映射 两个数据卷挂载 设置开机自启动
docker run -d -p 6379:6379 --name redis505 --restart=always  -v /var/lib/redis/data/:/data -v /var/lib/redis/conf/:/usr/local/etc/redis/redis.conf  redis:5.0.5 --requirepass "password"

注意:如果当前启动的容器没有挂载的话,容器被删数据会丢失。

  • 更换容器名

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

Docker 运维命令

  • 查看docker工作目录

sudo docker info | grep "Docker Root Dir”

  • 查看docker磁盘占用总体情况
du -hs /var/lib/docker/
  • 查看Docker的磁盘使用具体情况
docker system df
  • 删除 无用的容器和 镜像
  删除异常停止的容器
docker rm `docker ps -a | grep Exited | awk '{print $1}'` 
  删除名称或标签为none的镜像
docker rmi -f  `docker images | grep '<none>' | awk '{print $3}'`
  • 清除所有无容器使用的镜像 注意:此命令只是镜像无容器使用(容器正常运行)都会被删除,包括容器临时停止
docker system prune -a
  • 查找大文件
find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr
  • 查找指定docker使用目录下大于指定大小文件

Docker 基础命令

  • 启动docker

systemctl start docker

  • 关闭docker

systemctl stop docker

  • 重启docker

systemctl restart docker

  • docker设置随服务启动而自启动

systemctl enable docker

  • 查看docker 运行状态

systemctl status docker

如果是在运行中 输入命令后 会看到绿色的active Docker常用命令(五) - Java技术债务

  • 查看docker 版本号信息

docker version docker info

  • docker 帮助命令

docker --help

忘记了某些命令便可使用此进行查看与回顾,比如 咱忘记了 拉取命令 不知道可以带哪些参数 咱可以这样使用

docker pull --help

Docker 镜像命令

  • 查看自己服务器中docker 镜像列表

docker images

  • 搜索镜像

docker search 镜像名

搜索 STARS >9000的 mysql 镜像 docker search --filter=STARS=9000 mysql

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

docker pull 镜像名 docker pull 镜像名:tag

Docker常用命令(五) - Java技术债务

如果搜索的镜像不知道tag的话,可以去docker官网查询docker官方镜像搜索

Docker常用命令(五) - Java技术债务

  • 运行镜像

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

注意:docker run 镜像名这种简单方式启动的话,只能临时启动,并不是后台启动;如果窗口关闭,镜像会自动停止。不过有持久运行 映射端口 设置容器别名 数据卷挂载等

Docker常用命令(五) - Java技术债务

  • 查看docker当前的容器 镜像启动后都会有一个对应的容器

查看当前运行的容器 docker ps 查看所有容器 docker ps -a

  • 删除容器

docker rm 容器id

  • 删除镜像

删除一个 docker rmi -f 镜像名/镜像ID 删除多个 其镜像ID或镜像用用空格隔开即可 docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID 删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID docker rmi -f $(docker images -aq)

注意: 如果镜像已经启动过(无论是运行状态还是终止状态),容器中已经存在改镜像,那么,先删除容器。

Docker常用命令(五) - Java技术债务

  • 强制删除镜像

docker image rm 镜像名称/镜像ID

  • 保存镜像 将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后 可以在任何一台安装了docker的服务器上 加载这个镜像

docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字 eg: docker save tomcat -o /opt/data/docker/docker-image.tar

  • 加载镜像 任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像

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

  • Dockerfile创建镜像 语法:docker build [OPTIONS] PATH | URL | - OPTIONS说明:
  • **-build-arg=[] :**设置镜像创建时的变量;
  • **-cpu-shares :**设置 cpu 使用权重;
  • **-cpu-period :**限制 CPU CFS周期;
  • **-cpu-quota :**限制 CPU CFS配额;
  • **-cpuset-cpus :**指定使用的CPU id;
  • **-cpuset-mems :**指定使用的内存 id;
  • **-disable-content-trust :**忽略校验,默认开启;
  • **f :**指定要使用的Dockerfile路径;
  • **-force-rm :**设置镜像过程中删除中间容器;
  • **-isolation :**使用容器隔离技术;
  • **-label=[] :**设置镜像使用的元数据;
  • **m :**设置内存最大值;
  • **-memory-swap :**设置Swap的最大值为内存+swap,"-1"表示不限swap;
  • **-no-cache :**创建镜像的过程不使用缓存;
  • **-pull :**尝试去更新镜像的新版本;
  • **-quiet, -q :**安静模式,成功后只输出镜像 ID;
  • **-rm :**设置镜像成功后删除中间容器;
  • **-shm-size :**设置/dev/shm的大小,默认值是64M;
  • **-ulimit :**Ulimit配置。
  • **-squash :**将 Dockerfile 中所有的操作压缩为一层。
  • -tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
  • -network: 默认 default。在构建期间设置RUN指令的网络模式

Docker常用命令(五) - Java技术债务

Docker容器相关命令

  • 查看docker当前的容器 镜像启动后都会有一个对应的容器,就好比 咱java中的new出来对象(docker run 镜像产生一个该镜像具体容器实例),docker 容器的启动需要镜像的支持

查看当前运行的容器 docker ps

查看所有容器 docker ps -a

  • 运行容器
 -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行)  --name 给要运行的容器 起的名字  /bin/bash  交互路径
docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash

例如我们要启动一个redis 把它的别名取为redis001 并交互式运行 需要的命令 —我这里指定版本号为5.0.5

	拉取redis 镜像
	docker pull redis:5.0.5
	命令启动
	docker run -it -d --name redis001 redis:5.0.5 /bin/bash

注意: 如果是这样启动的话,redis默认端口6379,只是占用了当前redis容器的6379端口。占用的6379端口 仅仅是在容器中内部本身的端口,与宿主机的6379端口并无联系

每一个 Docker容器都是独立和安全的应用平台(我们可以理解为,每一个docker容器都相当于在我们的服务器上占用资源然后开辟了属于自己的一个空间(也可以理解为服务器))

  • 停止容器
 先停止咱之前运行的 redis 容器 
docker stop 容器名/容器ID
  • 删除容器
删除一个容器
docker rm -f 容器名/容器ID

删除多个容器 空格隔开要删除的容器名或容器ID
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID

删除全部容器
docker rm -f $(docker ps -aq)

Docker常用命令(五) - Java技术债务

  • 容器端口与服务器端口映射

-p 宿主机端口:容器端口

eg:启动redis指定宿主机端口6380和容器端口6379

docker run -itd --name redis002 -p 6380:6379 redis:5.0.5 /bin/bash

Docker常用命令(五) - Java技术债务

注意: 一旦宿主机的端口被占用就不能再次被指定,因为宿主机的端口只能是1对1。

  • 进入镜像容器
docker exec -it 容器名/容器ID /bin/bash
或者
docker attach 容器名/容器ID
  • 退出镜像容器

exit

  • 停止容器

docker stop 容器ID/容器名

  • 重启容器

docker restart 容器ID/容器名

  • 启动容器

docker start 容器ID/容器名

  • kill 容器

docker kill 容器ID/容器名

  • 容器文件拷贝 无论容器是否开启 都可以进行拷贝
docker cp 容器ID/名称:文件路径  要拷贝到外部的路径   |     要拷贝到外部的路径  容器ID/名称:文件路径
从容器内 拷出
docker cp 容器ID/名称: 容器内路径  容器外路径
从外部 拷贝文件到容器内
docker  cp 容器外路径 容器ID/名称: 容器内路径
  • 查看容器日志

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

  • 容器开机自启 容器启动时添加参数--restart=always 该容器随docker服务启动而自动启动
docker run -itd --name redis002 -p 6380:6379 --restart=always  redis:5.0.5 /bin/bash
或者
 不想删除容器的话
docker  update --restart=always 容器Id 或者 容器名
或
docker container update --restart=always 容器Id 或者 容器名
  • 容器挂载 将容器内的数据与外部宿主机文件绑定起来,类似一个双持久化,当容器删除时,宿主机文件数据目录仍在,下次启动容器只要将数据目录指向宿主机数据所在位置即可恢复! 容器启动时添加参数-v 宿主机文件存储位置:容器内文件位置 如此操作,就将 容器内指定文件挂载到了宿主机对应位置,-v命令可以多次使用,即一个容器可以同时挂载多个文件 v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置
 运行一个docker redis 容器 进行 端口映射 两个数据卷挂载 设置开机自启动
docker run -d -p 6379:6379 --name redis505 --restart=always  -v /var/lib/redis/data/:/data -v /var/lib/redis/conf/:/usr/local/etc/redis/redis.conf  redis:5.0.5 --requirepass "password"

注意:如果当前启动的容器没有挂载的话,容器被删数据会丢失。

  • 更换容器名

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

Docker 运维命令

  • 查看docker工作目录

sudo docker info | grep "Docker Root Dir”

  • 查看docker磁盘占用总体情况
du -hs /var/lib/docker/
  • 查看Docker的磁盘使用具体情况
docker system df
  • 删除 无用的容器和 镜像
  删除异常停止的容器
docker rm `docker ps -a | grep Exited | awk '{print $1}'` 
  删除名称或标签为none的镜像
docker rmi -f  `docker images | grep '<none>' | awk '{print $3}'`
  • 清除所有无容器使用的镜像 注意:此命令只是镜像无容器使用(容器正常运行)都会被删除,包括容器临时停止
docker system prune -a
  • 查找大文件
find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr
  • 查找指定docker使用目录下大于指定大小文件
完
  • 本文作者:Java技术债务
  • 原文链接: https://cuizb.top/myblog/article/1652539170
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY 3.0 CN协议进行许可。转载请署名作者且注明文章出处。
阅读全文
Java技术债务

Java技术债务

Java技术债务
Java技术债务
热门文章
  1. ClickHouse使用过程中的一些查询优化(六)2003
  2. MySQL数据库被攻击,被删库勒索,逼迫我使出洪荒之力进行恢复数据764
  3. MySQL主从同步原理458
  4. 线程池的理解以及使用414
  5. Spring Cloud Gateway整合nacos实战(三)409
分类
  • Java
    30篇
  • 设计模式
    27篇
  • 数据库
    20篇
  • Spring
    18篇
  • MySQL
    13篇
  • ClickHouse
    11篇
  • Kubernetes
    10篇
  • Redis
    9篇
  • Docker
    8篇
  • SpringBoot
    7篇
  • JVM
    6篇
  • Linux
    5篇
  • Spring Cloud
    5篇
  • 多线程
    5篇
  • Netty
    4篇
  • Kafka
    4篇
  • 面经
    4篇
  • Nginx
    3篇
  • JUC
    3篇
  • 随笔
    2篇
  • 分布式
    1篇
  • MyBatis
    1篇
  • 报错合集
    1篇
  • 生活记录
    1篇
  • 源码
    1篇
  • 性能优化
    1篇

最新评论

  • MySQL数据库被攻击,被删库勒索,逼迫我使出洪荒之力进行恢复数据2022-05-06
    Java技术债务:@capture 一起探讨学习,服务器被黑很正常,及时做好备份以及做好防护
  • MySQL数据库被攻击,被删库勒索,逼迫我使出洪荒之力进行恢复数据2022-04-13
    capture:我的刚上线两天,网站里就两篇文章也被攻击了,纳闷
  • Java常用集合List、Map、Set介绍以及一些面试问题2022-01-18
    Java技术债务:HashSet和TreeSet 相同点:数据不能重复 不同点: 1、底层存储结构不同; HashSet底层使用HashMap哈希表存储 TreeSet底层使用TreeMap树结构存储 2、唯一性方式不同 HashSet底层使用hashcode()和equal()方法判断 TreeSet底层使用Comparable接口的compareTo判断的 3、HashSet无序,TreeSet有序
  • undefined2021-12-14
    Java技术债务:如果不指定线程池,CompletableFuture会默认使用ForkJoin线程池,如果同一时间出现大量请求的话,会出现线程等待问题,建议使用自定义线程池。。。
  • undefined2021-12-02
    you:很好,对于小白相当不错了,谢谢
  • CSDN
  • 博客园
  • 程序猿DD
  • 纯洁的微笑
  • spring4all
  • 廖雪峰的官方网站
  • 猿天地
  • 泥瓦匠BYSocket
  • crossoverJie
  • 张先森个人博客
  • 越加网

© 2021-2022 Java技术债务 - Java技术债务 版权所有
总访问量 0 次 您是本文第 0 位童鞋
豫ICP备2021034516号
Java技术债务 豫公网安备 51011402000164号

微信公众号

Java技术债务
Java技术债务

专注于Spring,SpringBoot等后端技术探索

以及MySql数据库开发和Netty等后端流行框架学习

日志
分类
标签
RSS

有不足之处也希望各位前辈指出