当前位置: 首页 > news >正文

docker具体操作

安装docker : 

前提  centos 7  64位  centos内核版本3.10以上

 1    uname -r  查看内核

30e4e36e777145988df6026f79a74d9f.png

   2  yum install -y   yum-utils  device-mapper-persistent-data   lvm2  下载依赖包

 3 um-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo设置docker yum源 

4  yum list docker-ce --showduplicates | sort -r   查看仓库中所有docker版本:

5安装docker        yum install -y docker-ce

6 查看docker状态    service docker status

7 启动docker       service docker start

测试源是否能用    

 1  docker run hello-world     运行cker run hello-world 是一个常用的命令,用于测试 Docker 是否正确安装在你的系统上。这个命令会运行一个名为 hello-world 的 Docker 镜像,该镜像是一个特殊的镜像,用于演示 Docker 的基本功能(

当你执行 docker run hello-world 命令时,Docker 会执行以下步骤:

查找镜像:Docker 首先会在本地查找名为 hello-world 的镜像。如果本地没有该镜像,Docker 会尝试从 Docker Hub(Docker 的官方镜像仓库)下载它。

下载镜像(如果本地没有):如果本地没有 hello-world 镜像,Docker 会从 Docker Hub 下载它。这个镜像非常小,下载速度通常很快。

创建容器:下载完成后,Docker 会使用 hello-world 镜像来创建一个新的容器。

运行容器:容器创建后,Docker 会运行容器中的程序。对于 hello-world 镜像,它会打印一条欢迎信息,并显示 Docker 的一些基本用法和文档链接。

退出容器hello-world 镜像中的程序执行完毕后,容器会自动退出。

)发现不能用,因为他默认源在国外,抠搜的不让用

2  vim  /etc/docker/daemon.json

{"registry-mirrors": ["https://docker.fxxk.dedyn.io","https://docker.registry.cyou","https://docker-cf.registry.cyou","https://docker.jsdelivr.fyi","https://dockercf.jsdelivr.fyi"]
}

这是新找的能用的,但也可能明天就用不了,你可以去这里找

GitHub - cmliu/CF-Workers-docker.io: 这个项目是一个基于 Cloudflare Workers 的 Docker 镜像代理工具。它能够中转对 Docker 官方镜像仓库的请求,解决一些访问限制和加速访问的问题。GitHub - cmliu/CF-Workers-docker.io: 这个项目是一个基于 Cloudflare Workers 的 Docker 镜像代理工具。它能够中转对 Docker 官方镜像仓库的请求,解决一些访问限制和加速访问的问题。

ea4dc5b57e7f464db1f1a486b3063006.pngGitHub - cmliu/CF-Workers-docker.io: 这个项目是一个基于 Cloudflare Workers 的 Docker 镜像代理工具。它能够中转对 Docker 官方镜像仓库的请求,解决一些访问限制和加速访问的问题。

上边这些https开头的直接加到上面配置文件中括号里,注意加双引号,和用逗号隔开

 重启     service docker restart

再次运行  docker run hello-world

常用命令

查看版本:docker  version

查看详情: docker info

docker帮助:    docker --help

查看docker大小:   du -sh /var/lib/docker/

刚拉的镜像都在这里      cat  /var/lib/docker/image/overlay2/repositories.json

列出本地镜像     docker  images      可以看到刚才拉的hello-world镜像

 显示完整的镜像信息   docker images --no-trunc

:列出本地的所有镜像(包括不完整/损坏的镜像)   docker images -a

只显示镜像的id           docker images -q

列出本地的所有镜像(包括不完整/损坏的镜id   docker images -qa

显示镜像的摘要信息     docker images  --digests

搜索与tomcat相关的镜像       docker search  tomcat

 只显示前三行             docker search  tomcat  --limit 3

拉取镜像        docker pull  tomcat:9.0.80       这个tomcat没有index.jps页面 所以会404

拉完再次查看镜像       docker images

再次查看docker大小: du -sh   docker    发现比刚才大得多

再次查看拉的镜像  cat  /var/lib/docker/image/overlay2/repositories.json

355ca40acb6141fabe5d98661f5551a6.png

删除镜像       docker rmi     镜像:版本号

                      docker rmi  hello-world:latest

01049f848677478095e028d807ac3472.png

 镜像被使用过,就存在容器,有容器在用它,删不了

docker ps -a   查看使用过和正在使用的镜像   可以看到已经用过hello-world 

非要删除这个镜像要么先把容器删了要么加 -f 强制删除   docker rmi  -f   hello-world:latest

再次查看镜像    docker images   没有hello-world了

(docker run hello-world拉取并运行, docker pull hello-world只拉取不运行)

建议删除镜像直接用强制删除  就像这个hello-world ,用过了,强制删除后,再拉取不运行,也会常出现在容器里,想删除还得  -f  强制删除

删除 后面也可以跟id   docker rmi  -f   d2c94e258dcb   id在官网都是唯一的

批量删除   docker rmi -f $(docker images -q)    

全批量删除   docker rmi -f $(docker images -qa) 

容器命令

                                                   tomcat  id唯一

docker run --name tomcat91  -d ce95ab0490a9      从镜像启动一个新的容器

docker run --name tomcat92  -d ce95ab0490a9

docker run --name tomcat93  -d ce95ab0490a9

docker ps   正在运行的

b977b86fdb2244c5b9d7cc058c078176.png

docker stop tomcat91        停掉tomcat91

98ebcf12fdb94e78bdd36adb294cc22a.png

d5b6f6406be4418fb8e3ea6752e4adf3.png

 docker start tomcat91  启动

-l:显示最近所创建过的一个容器    

-n:显示最近所创建过的n个容器    docker ps -n 5     显示最近所创建过的5个容器

你想进容器看看小世界吗    想!!!!!1

docker exec  -it  tomcat91 /bin/bash     

./bin/shutdown.sh   关闭tomcat

918cafed5ce94d78b5b43368f1509ae5.png

exit   退出

docker  logs tomcat91   看日志

端口映射

  弄三个tomcat 在docker   并显示页面  

docker volume create tomcat91

docker volume create tomcat92

docker volume create tomcat93

docker run --name tomcat91 -d -p 18081:8080 -v tomcat93:/usr/local/tomcat/webapps tomcat:9.0.80

docker run --name tomcat92 -d -p 18082:8080 -v tomcat93:/usr/local/tomcat/webapps tomcat:9.0.80

docker run --name tomcat93 -d -p 18083:8080 -v tomcat93:/usr/local/tomcat/webapps tomcat:9.0.80

docker ps  看一下是不是全启动了

这个9.0.8版本没有ROOT。index.jsp  所以自己动手丰衣足食

mkdir /var/lib/docker/volumes/tomcat91/_data/ROOT 

mkdir /var/lib/docker/volumes/tomcat92/_data/ROOT 

mkdir /var/lib/docker/volumes/tomcat93/_data/ROOT 

 vim   /var/lib/docker/volumes/tomcat91/_data/ROOT/index.jsp 

<html>
<head>
<title>index</title>
</head>
<body>
<h3> welcome  to  qy3333333333333    <h3>
</body></html>

   cp          /var/lib/docker/volumes/tomcar91/_data/ROOT/index.jsp /var/lib/docker/volumes/tomcat92/_data/ROOT/

   cp          /var/lib/docker/volumes/tomcar91/_data/ROOT/index.jsp /var/lib/docker/volumes/tomcat93/_data/ROOT/

把index.jsp里面<h3><h3>改成能辨识tomcat91 92 93 的

在浏览器里

192.168.58.71:18081

192.168.58.71:18082

192.168.58.71:18083

能看到你在<h3><h3>里的辨识tomcat91 92 93

在外面创建的文件或什么的,里面的小世界都有,麻雀随小,却五脏俱全

一个容器可以有多个卷  如果只能有一个卷,就只能改一个容器里的文件(当然也可以把卷删了从新挂一个容器里面的但是太麻烦了)里面的小世界只能看不能改

docker run --name tomcat94 -d -p 8087:8080   -v /path/to/logs:/logs \  -v /path/to/data:/data \ tomcat:9.0.80

/path/to/logs:/logs     /path/to/data都是外边世界有的

  1. -p 8087:8080:这个选项用于端口映射。它将容器内部的8080端口映射到宿主机的8087端口上。这意味着,当您访问宿主机的8087端口时,实际上是在访问容器内部的8080端口,而8080端口通常是Tomcat服务器监听的端口。

  2. -d:这个选项告诉Docker以“分离模式”运行容器,即在后台运行容器。这样,您就可以在容器运行的同时继续在命令行中执行其他命令。

  3. --name tomcat94:这个选项为即将创建的容器指定了一个名称,即tomcat94。这样做可以方便地在后续操作中通过名称来引用容器,而不是使用容器的ID。

  4. docker run:这是Docker的一个基本命令,用于从镜像启动一个新的容器。

  5. -v /path/to/logs:/logs:这是第一个卷挂载选项。它将宿主机的 /path/to/logs 目录挂载到容器的 /logs 目录。这意味着容器内部对 /logs 目录的任何读写操作都会直接反映到宿主机的 /path/to/logs 目录中。这对于日志文件的持久化存储非常有用。

  6. -v /path/to/data:/data:这是第二个卷挂载选项。它类似于第一个选项,但将宿主机的 /path/to/data 目录挂载到容器的 /data 目录。这允许您将数据文件存储在宿主机的指定目录中,同时让容器能够访问这些数据。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 一把手告诉你联盟营销白帽电商广告借力NewsBreak头条优势
  • 队列相关内容
  • YOLOv10改进 | 独家创新- 注意力篇 | YOLOv10结合全新多尺度线性注意力机制DSLAM和C2f_DSLAM(全网独家创新)
  • 安卓中synchronized 关键字 的作用和介绍
  • java 使用zookeeper包实现zookeeper分布式锁
  • [mongodb][配置]MongoDB中限制内存
  • Docker方式部署K8s集群
  • bash代码片段snippets
  • Oracle使用手册
  • 爆改YOLOv8|使用MobileNetV3替换Backbone
  • leetcode 169 多数元素
  • 如何用AP525 测试输入信号的相位,频响,延时,Pop和卡顿
  • 2.Easy-Paas部署
  • 设计模式2个黄鹂鸣翠柳-《分析模式》漫谈23
  • strace 简介和使用
  • [case10]使用RSQL实现端到端的动态查询
  • 08.Android之View事件问题
  • 77. Combinations
  • android图片蒙层
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • Druid 在有赞的实践
  • HTTP 简介
  • js
  • mongodb--安装和初步使用教程
  • vue-cli在webpack的配置文件探究
  • 讲清楚之javascript作用域
  • 前端存储 - localStorage
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 设计模式 开闭原则
  • 字符串匹配基础上
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​iOS实时查看App运行日志
  • ​决定德拉瓦州地区版图的关键历史事件
  • ‌前端列表展示1000条大量数据时,后端通常需要进行一定的处理。‌
  • #07【面试问题整理】嵌入式软件工程师
  • #pragma once
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (1)(1.13) SiK无线电高级配置(五)
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (剑指Offer)面试题34:丑数
  • (九)c52学习之旅-定时器
  • (四)React组件、useState、组件样式
  • (图)IntelliTrace Tools 跟踪云端程序
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • (一)Docker基本介绍
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (正则)提取页面里的img标签
  • (转) Android中ViewStub组件使用