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

Java技术栈 —— Docker容器

Java技术栈 —— Docker容器

  • 一、什么是Docker?
  • 二、如何安装Docker?
  • 三、如何使用Docker?

一、什么是Docker?

docker的本意是码头工人。

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。[1]

一、参考文章或视频链接
[1] 《Docker》- 百度百科
[2] Docker - 官方

二、如何安装Docker?

Q1:Docker Desktop与Docker Engine的区别?
Docker Engine is the fundamental containerization engine that runs on servers and manages containers, while Docker Desktop is a developer-focused tool that includes Docker Engine along with additional features to simplify the development and testing of containerized applications on local machines.[2]
简而言之,Docker Desktop比Docker Engine范围更广,Docker Engine只是一个运行的组件,类似于JDK与JRE的关系,在参考文章[3]里也阐明了这两者的关系与切换方式,为了完整的学习Docker,安装Docker Desktop,我的是Ubuntu系统,你可以根据参考文章[1]自行查找Windows的安装方式。

# docker-engine
docker context use default
# docker-desktop
docker context use desktop-linux

单机的断网模式下,安装Docker Desktop前,先把缺失的依赖装上,见参考文章[7]。
在这里插入图片描述
如果你的Ubuntu是可以联网的,并且对应的docker仓库也已经配好了[8],也可以直接用apt-get方式安装,详细见参考文章[9]。

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

然后回到参考文章[3]进行安装。

sudo apt-get update
sudo apt-get install ./docker-desktop-<version>-<arch>.deb

安装好后应该是这个样子的
在这里插入图片描述

二、参考文章或视频链接
[1] Docker Manuals - 官方
[2] What Docker Desktop and Docker Engine in Linux?
[3] Install Docker Desktop on Linux - 官方
[4] 重点参考:Install Docker Desktop on Ubuntu - 官方
[5] Dpkg Vs Apt [What’s the Difference Between Package Managers] - LinuxSimply
[6] Ubuntu使用记录:安装deb软件方法以及apt、apt-get和dpkg的区别 - CSDN
[7] 重点参考:Install Docker Engine on Ubuntu - 官方
[8] Install Docker Engine on Ubuntu - 官方
[9] Docker Engine 23.0 release notes - 官方

三、如何使用Docker?

在安装好上面的Docker Desktop后,并选择好你要用default还是desktop-linux,执行以下的命令,这代表你已经安装好并可以使用docker了,Congratulations!🎉🎉🎉。

$ sudo docker run hello-worldHello from Docker!
This message shows that your installation appears to be working correctly.
...
三、参考文章或视频链接
[1] Emoji Cheat Sheet
http://www.lryc.cn/news/289899.html

相关文章:

  • Mysql大数据量分页优化
  • QT tcp与udp网络通信以及定时器的使用 (7)
  • web架构师编辑器内容-添加自动保存的功能
  • 【Redis】关于它为什么快?使用场景?以及使用方式?为何引入多线程?
  • SpringBoot之JWT登录
  • 【备战蓝桥杯】——循环结构
  • 【数据分享】1929-2023年全球站点的逐年平均气温数据(Shp\Excel\免费获取)
  • 探索Pyecharts关系图绘制技巧:炫酷效果与创意呈现【第42篇—python:Pyecharts水球图】
  • 蓝桥杯-循环节长度
  • Jython调用openwire库连接activemq转发topic订阅消息到另一个activemq 服务器上 完整代码
  • 面试经典题---30.串联所有单词的子串
  • 字符串随机生成工具(开源)-Kimen(奇门)
  • UE4 CustomDepthMobile流程小记
  • Docker 基础篇
  • Idea上操作Git回退本地版本,怎么样保留已修改的文件,回退本地版本的四种方式代表什么?
  • vue3封装el-pagination分页组件
  • 负载均衡下Webshell连接思路及难点
  • 基于链表实现贪吃蛇游戏
  • Python网络爬虫实战——实验6:Python实现js逆向与加解密
  • 【python】使用aiohttp库编写一个简单的异步服务器
  • 新手使用代理IP接入代码教程
  • JVM问题排查手册
  • 前端canvas项目实战——简历制作网站(三)——右侧属性栏(线条宽度样式)
  • 字节跳动二面经典题目
  • 微搭低代码从入门到精通01应用介绍
  • 论文阅读《thanking frequency fordeepfake detection》
  • ArcgisForJs快速入门
  • 【解决方法】git pull报错ssh: connect to host github.com port 22: Connection timed out
  • 30天精通Nodejs--第三十天:项目实战-物联网应用
  • java 社区资源管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目