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]。
Java技术栈 —— Docker容器_第1张图片
如果你的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

安装好后应该是这个样子的
Java技术栈 —— Docker容器_第2张图片

二、参考文章或视频链接
[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-world

Hello from Docker!
This message shows that your installation appears to be working correctly.
...
三、参考文章或视频链接
[1] Emoji Cheat Sheet

你可能感兴趣的:(Java技术栈,java,docker,开发语言)