实验01 Docker容器的安装与操作

一、实验目的:

1、了解什么是虚拟化、什么是Docker?

2、理解Docker的相关概念(镜像、容器、仓库)。

3、掌握Linux环境下Doker容器的安装与启动。

4、掌握Docker的相关操作命令。

实验环境

1、虚拟机Vmare WorkStation;

2、Ubuntu操作系统;

实验准备

1、掌握Vmare WorkStation的基本使用;

2、安装完成Ubuntu操作系统

3、掌握Ubuntu操作系统的基本使用指令。

实验内容

  1. 更新APT包索引并安装依赖包:

更新APT包索引的命令是:

复制代码
   sudo apt-get update

安装Docker所需的依赖包,可以使用以下命令:

复制代码
   sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
  1. 添加Docker的官方GPG密钥并验证:

添加Docker的官方GPG密钥的命令是:

复制代码
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

验证是否拥有带有指纹的密钥,可以使用以下命令来列出所有的APT密钥,并查找Docker的密钥:

复制代码
   sudo apt-key list

然后,你可以在列出的密钥中查找Docker的密钥指纹。

  1. 设置稳定版仓库:

添加Docker的稳定版仓库到你的系统的命令是:

复制代码
   sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

这里的 `$(lsb_release -cs)` 会根据你的Ubuntu版本自动替换为相应的代号,如`bionic`、`xenial`、`focal`等。

完成这些步骤后,可以继续安装Docker的其他步骤,例如更新APT包索引和安装Docker软件包。

(二)安装Docker

1.请写出安装Docker命令。

复制代码
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

2.安装完成后验证Docker是否成功安装(查看Docker版本)。

复制代码
sudo docker --version

sudo docker run hello-world

(三)启动并配置Docker

1.启动Docker,请写出其命令。

复制代码
sudo systemctl start docker

2.重启Docker服务,请写出其命令。

复制代码
sudo systemctl restart docker

(四)(附加题)在Docker容器中安装JKD。

1.在Dokcer中搜索JDK镜像。

复制代码
docker search jdk

2.选择一个JKD镜像,并拉取其镜像到本地仓库。

复制代码
docker pull openjdk:8-jdk

3.查看JKD镜像是否已下载到本地仓库。

复制代码
docker images

4.在Docker容器中运行JDK镜像。

复制代码
docker run -it --name my-jdk-container openjdk:8-jdk

5.进入容器查看JDK版本。

复制代码
docker exec -it my-jdk-container java -version

此外,如果你需要在容器内部安装JDK,而不是使用预构建的JDK镜像,你可以基于一个基础镜像(如ubuntudebian),然后在Dockerfile中添加安装JDK的步骤。例如:

复制代码
FROM ubuntu:latest

# 安装JDK
RUN apt-get update && \
    apt-get install -y openjdk-11-jdk && \
    rm -rf /var/lib/apt/lists/*

# 设置环境变量
ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64

实验总结

(一)什么是Docker容器,Docker容器有什么作用?

Docker容器是一种轻量级、可移植的、自给自足的软件运行环境,它允许开发者打包他们的应用以及应用的运行环境和依赖项到一个可移植的容器中。Docker容器通过Docker Engine实现,它是一个客户端-服务器架构的程序,客户端向服务器发送请求,服务器执行这些请求。

Docker容器的作用包括:

  • 环境一致性:容器提供了一致的运行环境,无论在开发、测试还是生产环境中,应用的行为都保持一致。
  • 开发与部署效率:容器可以快速启动和停止,这使得开发和部署过程更加迅速和高效。
  • 版本控制和组件重用:Docker容器可以与版本控制系统结合使用,方便管理和追踪不同版本的应用。
  • 微服务架构:容器非常适合微服务架构,每个服务可以独立运行在容器中,便于管理和扩展。
  • 资源利用率:容器共享宿主机的内核,不需要像虚拟机那样模拟整个操作系统,因此资源利用率更高。
  • 隔离性:容器提供了一定程度的隔离性,每个容器运行在自己的文件系统中,拥有自己的网络配置。

(二)Docker容器与虚拟机的关系是什么?

Docker容器和虚拟机都是提供隔离环境的技术,但它们在实现方式和用途上有所不同:

  • 虚拟化级别:虚拟机提供了一个完整的操作系统虚拟化,包括完整的操作系统和运行在其上的应用程序。而Docker容器共享宿主机的内核,仅虚拟化了应用程序和其依赖的库。
  • 资源占用:由于虚拟机需要模拟整个操作系统,因此资源占用更多,启动时间更长。Docker容器则因为共享宿主机内核,资源占用更少,启动时间更短。
  • 性能:虚拟机由于需要通过虚拟化层来运行,可能会有一定的性能开销。Docker容器因为直接运行在宿主机上,性能更接近原生。
  • 便携性:Docker容器因为不包含操作系统,通常更轻量,更容易在不同环境中迁移和部署。
  • 管理工具:虚拟机通常使用虚拟化管理工具(如VMware或VirtualBox)来管理,而Docker容器使用Docker Engine和Docker CLI来管理。
  • 用例:虚拟机适用于完整的操作系统和复杂应用的部署,而Docker容器适用于轻量级、松耦合的微服务和应用组件。
相关推荐
JohnYan2 小时前
工作笔记 - CentOS7环境运行Bun应用
javascript·后端·容器
ezreal_pan2 小时前
Kubernetes 负载均衡现象解析:为何同一批次请求集中于单个 Pod
运维·云原生·k8s·traefik
朱皮皮呀2 小时前
Spring Cloud——服务注册与服务发现原理与实现
运维·spring cloud·eureka·服务发现·php
科大饭桶3 小时前
C++入门自学Day14-- Stack和Queue的自实现(适配器)
c语言·开发语言·数据结构·c++·容器
云边云科技4 小时前
零售行业新店网络零接触部署场景下,如何选择SDWAN
运维·服务器·网络·人工智能·安全·边缘计算·零售
城管不管4 小时前
Docker核心---数据卷(堵门秘籍)
运维·docker·容器
AOwhisky4 小时前
Linux 文本处理三剑客:awk、grep、sed 完全指南
linux·运维·服务器·网络·云计算·运维开发
xuanerya5 小时前
使用 SSH 方式克隆 GitHub 仓库没有权限解决办法
运维·ssh·github
BestAns5 小时前
Docker+Jenkins 自定义镜像指南
docker
runfarther5 小时前
搭建LLaMA-Factory环境
linux·运维·服务器·python·自然语言处理·ai编程·llama-factory