Docker学习笔记

1.什么是Docker

Docker是基于Go语言实现的云开源项目。Docker的主要目标是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到一次封装,到处运行。

2.Docker作用

借助 Docker,可将容器当做轻巧、模块化的虚拟机来使用。同时,还将获得高度灵活性,实现对容器的高效创建、部署及复制,并在环境之间迁移它们,从而有助于针对云来优化应用

其实原理非常的简单:换句话来说就是伴随着linux容器技术的发展,Docker 容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。

3.Docker的基本组成

1. Docker 镜像(Docker Images)

Docker 镜像是一个只读的模板,用于创建 Docker 容器。它包含了运行容器所需的所有内容,包括代码、运行时环境、库、环境变量和配置文件。镜像在构建时定义了应用程序及其依赖,且一旦创建,不会被改变。(官方话语比较抽象)

用一句话来概括就是:
Docker 镜像就像是一个预配置的快照,你可以基于这个快照快速启动新的容器,无论在哪个支持 Docker 的环境中,都能保证运行的一致性。

2. Docker 容器(Docker Containers)

容器是 Docker 镜像的运行实例。当你从一个镜像启动时,Docker 会在镜像的顶层添加一个可写文件层,所有的更改(比如添加新文件、修改现有文件和删除文件)都会发生在这个层上。容器可以被启动、停止、删除和重新启动,每个容器都是相互隔离、保证安全的平台。

举个简单的例子:

Docker 容器就像是一个便携式的行李箱,里面装有一个应用程序需要的一切------从衣服(代码)到护肤品(库)再到旅行指南(配置文件)------确保无论它被打开在何处,都能让应用程序像在家里一样运行。

3.Docker仓库(Docker Registry)

Docker 仓库(Docker Registry)是用来存储和分发 Docker 镜像的服务。

它可以是公共的或者私有的,允许用户上传和下载镜像。这样,开发者就可以轻松地分享和部署软件。

4.Docker的安装(这里以我的阿里云服务器为例)

1.更新系统:

sudo yum update

2.添加Docker仓库

bashCopy codesudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3.安装Docker

sudo yum install -y docker-ce

4.启动Docker服务

sudo systemctl start docker

5.设置Docker开机自启

sudo systemctl enable docker

6.验证Docker是否安装:

docker --version

当有版本号出现时那就成功安装了Docker

5.Docker项目学习实战:

各位可以尝试在Docker中创建一个包含数据库的容器,在不借助外力的情况下完成这个任务,那就可以说你的Docker开始入门了

步骤 1: 下载数据库镜像

docker pull mysql

步骤 2: 启动数据库容器

一旦镜像下载完成,使用 docker run 命令来启动一个新的容器,并在其中运行数据库。以下是启动 MySQL 数据库容器的示例命令:

docker run --name my-mysql-container -e MYSQL_ROOT_PASSWORD=password -d mysql

PS:指定容器的名称为 my-mysql-container,可以自行修改,MYSQL_ROOT_PASSWORD=password是设置 MySQL root 用户的密码为 password。你可以将 password 替换为你想要的密码。

3.链接数据库

docker exec -it my-mysql-container mysq -u root -p

6.Docker常用命令(别光看不练,最好敲一次):

1.列举正在运行的Docker:

我们要查看当前正在运行的容器有哪些,可以通过ps 命令来查看

复制代码
docker ps [OPTIONS]

OPTONS可用的参数

OPTIONS 说明
-a 列出当前所有正在运行的容器+历史上运行过的
-l 显示最近创建的容器。
-n 显示最近n个创建的容器。
-q 静默模式,只显示容器编号。
--no-trunc 不截断输出。

2. 退出容器命令

我们启动了一个容器后,如何退出容器

退出方式 说明
exit 容器停止退出
ctrl+p+q 容器不停止退出

3. 停止容器

复制代码
docker stop 容器ID或者名称

还可以通过强制停止方式处理

复制代码
docker kill 容器ID或者名称

4. 删除容器

有时候容器使用完成就没有作用了,我们想要删除掉容器,这时可以通过rm命令

复制代码
docker rm 容器ID
docker rm -f $(docker ps -qa)
docker ps -a -q | xargs docker rm

5.查看容器日志

  • 查看容器日志

    docker logs [OPTIONS] CONTAINER

    例如:docker logs my-container

6.镜像管理:

  • 拉取镜像

  • docker pull [OPTIONS] NAME[:TAG|@DIGEST]

    例如:docker pull nginx

  • 构建镜像

  • docker build [OPTIONS] PATH | URL | -

    例如:docker build -t my-image:latest .

  • 删除镜像

  • docker rmi [OPTIONS] IMAGE [IMAGE...]

    例如:docker rmi my-image:latest

  • 列出镜像

    docker images [OPTIONS] [REPOSITORY[:TAG]]

    例如:docker images(这里必须得记住,不用了以后记得及时清除)

最后,真诚希望文章能够帮助大家!

相关推荐
呉師傅8 分钟前
【使用技巧】Adobe Photoshop 2024调整缩放与布局125%后出现点菜单项漂移问题的简单处理
运维·服务器·windows·adobe·电脑·photoshop
heartbeat..11 分钟前
JVM 性能调优流程实战:从开发规范到生产应急排查
java·运维·jvm·性能优化·设计规范
浅念-14 分钟前
C++入门(2)
开发语言·c++·经验分享·笔记·学习
ZH154558913115 分钟前
Flutter for OpenHarmony Python学习助手实战:面向对象编程实战的实现
python·学习·flutter
忆~遂愿28 分钟前
CANN metadef 核心解析:计算图原型定义、算子元数据抽象与异构系统互操作机制
docker·容器
简佐义的博客31 分钟前
生信入门进阶指南:学习顶级实验室多组学整合方案,构建肾脏细胞空间分子图谱
人工智能·学习
近津薪荼33 分钟前
dfs专题4——二叉树的深搜(验证二叉搜索树)
c++·学习·算法·深度优先
小Tomkk38 分钟前
数据库 变更和版本控制管理工具 --Bytebase 安装部署(linux 安装篇)
linux·运维·数据库·ci/cd·bytebase
赌博羊38 分钟前
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32‘ not found
linux·运维·gnu
rannn_1111 小时前
【苍穹外卖|Day4】套餐页面开发(新增套餐、分页查询、删除套餐、修改套餐、起售停售)
java·spring boot·后端·学习