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

docker实战演练

一.docker简介

二.docker部署

1.解压并安装所需要的软件

[root@docker-node1 ~]# ls
anaconda-ks.cfg        docker.tar.gz    mario.tar.gz
busybox-latest.tar.gz  game2048.tar.gz  nginx-latest.tar.gz
[root@docker-node1 ~]# tar zxf docker.tar.gz 
[root@docker-node1 ~]# ls
anaconda-ks.cfg
busybox-latest.tar.gz
containerd.io-1.7.20-3.1.el9.x86_64.rpm
docker-buildx-plugin-0.16.2-1.el9.x86_64.rpm
docker-ce-27.1.2-1.el9.x86_64.rpm
docker-ce-cli-27.1.2-1.el9.x86_64.rpm
docker-ce-rootless-extras-27.1.2-1.el9.x86_64.rpm
docker-compose-plugin-2.29.1-1.el9.x86_64.rpm
docker.tar.gz
game2048.tar.gz
mario.tar.gz
nginx-latest.tar.gz
[root@docker-node1 ~]# yum install *.rpm -y

2.启动服务并从归档文件中加载镜像

[root@docker-node1 ~]# systemctl enable --now docker
[root@docker-node1 ~]# docker load -i game2048.tar.gz 
[root@docker-node1 ~]# docker load -i mario.tar.gz 
[root@docker-node1 ~]# docker load -i nginx-latest.tar.gz 
[root@docker-node1 ~]# docker load -i busybox-latest.tar.gz 

3.测试:

[root@docker-node1 ~]# docker run -d --rm --name game1 -p 80:80 timinglee/game2048:latest 

[root@docker-node1 ~]# docker rm -f game1 
[root@docker-node1 ~]# docker run -d --rm --name game2 -p 80:8080 timinglee/mario:latest 

三.docker的基本操作

<1>.docker镜像管理

1.搜索镜像

[root@Docker-node1 ~]# docker search nginx

2.拉取镜像

[root@Docker-node1 ~]# docker pull busybox

3.查看镜像信息

[root@Docker-node1 ~]# docker image inspect nginx:1.26-alpine

4.导出镜像

-o :指定导出镜像的位置; 可以同时导出多个镜像到一个文件中; 指定 .tar.gz 可以导出并压缩。
[root@Docker-node1 ~]# docker image save nginx:latest -o nginx-latest.tar.gz
[root@Docker-node1 ~]# docker save `docker images | awk 'NR>1{print $1":"$2}'` -o images.tar.gz

5.删除镜像

[root@Docker-node1 ~]# docker rmi nginx:latest
[root@Docker-node1 ~]# docker rmi `docker images | awk 'NR>1{print $1":"$2}'`

<2>.容器的常用操作

-d
后台运行
-i
交互式运行
-t
打开一个终端
--name
指定容器名称
-p
端口映射 -p 80:8080 把容器8080端口映射到本机80端口
--rm
容器停止自动删除容器
--network
指定容器使用的网络

1.启动容器

[root@Docker-node1 ~]# docker run -d --name mario -p 80:8080 timinglee/mario
进入到容器中,按<ctrl>+<d>退出并停止容器,按<ctrl>+<pq>退出但不停止容器
[root@Docker-node1 ~]# docker run -it --name centos7 centos:7
重新进入容器
[root@docker ~]# docker attach centos7
在容器中执行命令
[root@docker ~]# docker exec -it test ifconfig

2.查看容器运行信息

[root@Docker-node1 ~]# docker ps              #查看当前运行容器
[root@Docker-node1 ~]# docker ps -a           #查看所有容器
[root@Docker-node1 ~]# docker inspect busybox #查看容器运行的详细信息

3.停止和运行容器

容器内的第一个进程必须一直处于运行的状态,否则这个容器,就会处于退出状态!
[root@Docker-node1 ~]# docker stop busybox  #停止容器
[root@Docker-node1 ~]# docker kill busybox  #杀死容器,可以使用信号
[root@Docker-node1 ~]# docker start busybox #开启停止的容器

4.删除容器

[root@Docker-node1 ~]# docker rm centos7         #删除停止的容器
[root@Docker-node1 ~]# docker rm -f busybox      #删除运行的容器
[root@Docker-node1 ~]# docker container prune -f #删除所有停止的容器

5.容器内容提交

       默认情况下,容器被删除后,在容器中的所有操作都会被清理,包括要保存的文件,如果想永久保存,那么我们需要把动作提交,提交后会生成新的镜像,当我们在运行新镜像后即可看到我们提交的内容。此方法不利于企业审计,所以不推荐使用,在企业中我们多用 Dockerfile 来构建镜像。

6.系统中的文件和容器中的文件传输

7.查询容器内部日志

[root@Docker-node1 ~]# docker logs web

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • HarmonyOS 鸿蒙获取微信授权和持续获取位置信息
  • Android 系统连接WIFI显示网络连接受限分析处理
  • CI/CD实践(五)Jenkins Docker 自动化构建部署Node服务
  • kafka的12个重要概念
  • Spatial Structure Constraints for Weakly SupervisedSemantic Segmentation
  • Python实现分水岭图像分割算法
  • 数据类型 NVARCHAR2 与 VARCHAR2 的对比
  • 2024年6月 青少年等级考试机器人实操真题二级
  • 20240830 每日AI必读资讯
  • 公网信息泄露监测(网盘、暗网、搜索引擎、文档平台)思路分享
  • 【推推P1】第一期“小说详情模块”:JAVA开发文档官方版;快来在线实习吧
  • 服务器远程管理
  • R 2火灾温度预测
  • 442一场“吃干榨净”的富贵,是怎么拼出来的?
  • 【Java基础面试题】Java的优势
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • emacs初体验
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • GitUp, 你不可错过的秀外慧中的git工具
  • in typeof instanceof ===这些运算符有什么作用
  • Map集合、散列表、红黑树介绍
  • React16时代,该用什么姿势写 React ?
  • Vue2.0 实现互斥
  • 从setTimeout-setInterval看JS线程
  • 从重复到重用
  • 高度不固定时垂直居中
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • #git 撤消对文件的更改
  • #NOIP 2014# day.2 T2 寻找道路
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • ${factoryList }后面有空格不影响
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (6)添加vue-cookie
  • (7)STL算法之交换赋值
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (Python第六天)文件处理
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (正则)提取页面里的img标签
  • (转)菜鸟学数据库(三)——存储过程
  • (转)树状数组
  • .naturalWidth 和naturalHeight属性,
  • .Net MVC + EF搭建学生管理系统
  • .Net Winform开发笔记(一)
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .Net各种迷惑命名解释
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • :“Failed to access IIS metabase”解决方法
  • @JSONField或@JsonProperty注解使用