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(这里必须得记住,不用了以后记得及时清除)

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

相关推荐
TDengine (老段)13 分钟前
TDengine 快速体验(Docker 镜像方式)
大数据·数据库·物联网·docker·时序数据库·tdengine·涛思数据
中科三方30 分钟前
如何通过DNS解析实现负载均衡?有哪些优势?
运维·负载均衡
安科瑞刘鸿鹏38 分钟前
双碳时代,能源调度的难题正从“发电侧”转向“企业侧”
大数据·运维·物联网·安全·能源
小呆瓜历险记1 小时前
ubuntu 22.04搭建SOC开发环境
linux·运维·ubuntu
码农101号1 小时前
Linux中shell流程控制语句
linux·运维·服务器
水水沝淼㵘1 小时前
嵌入式开发学习日志(数据库II && 网页制作)Day38
服务器·c语言·网络·数据结构·数据库·学习
聪明小萝卜1 小时前
无法与IP建立连接,未能下载VSCode服务器
运维·服务器
JuiceFS1 小时前
深度解析 JuiceFS 权限管理:Linux 多种安全机制全兼容
运维·后端
暗夜潜行1 小时前
ubuntu + nginx 1.26 + php7.4 + mysql8.0 调优
linux·运维·ubuntu
守护者1701 小时前
JAVA学习-练习试用Java实现“一个词频统计工具 :读取文本文件,统计并输出每个单词的频率”
java·学习