docker基础知识以及windows上的docker desktop 安装

记录以供备忘

基础概念:

什么是docker

将程序和环境一起打包,以在不同操作系统上运行的工具软件

什么是基础镜像

选一个基础操作系统和语言后,将对应的文件系统、依赖库、配置等打包为一个类似压缩包的文件,就是基础镜像

什么是Dockerfile

以命令行代码的形式,按照执行顺序从前到后写的代码文件

什么是容器镜像

Docker按照Dockerfile中指明的依赖包等说明,一行行构建环境+应用程序,然后打包为一个类似压缩包的的文件,即容器镜像

将容器镜像传到任意一台服务器上执行"解压缩"操作便可以运行

什么是Registry

为了方便管理与调用,类似于github,形成了Docker Registry,可通过docker push 或者docker pull 上推或者下拉镜像到仓库/本地

官方的仓库名称为DockerHub,私人也有很多仓库,例如清华的Tuna

什么是容器

从Registry下拉镜像,使用docker run来"解压缩"镜像,可获得一个可以运行的独立的环境和应用程序,即为容器

一个操作系统会包含多个容器,容器间互相隔离,互不干扰

Docker与虚拟机的关系

虚拟机有完整的操作系统,而Docker中仅仅打包了操作系统中的"用户空间"。

Docker利用 Namespace 让它看起来像独立的操作系统,利用Cgroup来限制他能使用的计算资源。

故容器的本质是自带独立运行环境的特殊进程,底层和宿主机共用操作系统


宿主机、镜像(image)、容器(containers)、dockerfile、registry之间的关系

下载windows上的docker

windows上的docker叫 Docker Desktop,可以跟着csdn教程去安装。或者b站教程。注意安装时至少会重启两次,记得做好文件保存管理。

我的刚安装上之后显示 Docker Engine stopped

我也不清楚啥意思,只管在cmd中下载了一个镜像,一直卡在那里,回去睡觉了,放在那里过了一夜之后,镜像没下载下来,但是docker可以正常运行了。重新运行下载镜像的命令,镜像下载成功了。

基本命令

docker 拉取镜像:

复制代码
# 官方镜像
docker image pull 镜像名称 
# 或简写为 
docker pull 镜像名称
# 个人镜像
docker pull 仓库名称/镜像名称
docker pull xunmi/django
# 第三方仓库拉去
docker pull 第三方仓库地址/仓库名称/镜像名称
docker pull hub.c.163.com/library/mysql:latest
(默认仓库名为library,所有从官方获取镜像相当于`sudo docker image pull library/镜像名称`)

查看本机所有的镜像

复制代码
docker images
# 或者
docker image ls

docker 运行镜像:

复制代码
docker run -d -p 3000:8080 image_name

image_name为镜像名称

-d 选项表示在后台运行容器

-p 3000:8080 表示将容器内部的 8080 端口映射到宿主机的 3000 端口

docker 查看正在运行的容器列表

复制代码
docker ps               # 会返回容器的ID

docker 删除或者停止容器:

复制代码
docker stop [容器ID或容器名]
docker rm [容器ID或容器名]

修改别人的代码

需要拉下镜像--- 将镜像文件从docker下载到本地----修改文件----创建新的docker镜像-----构建新的镜像----运行新镜像

有一个问题,我在本地改代码的时候,怎么运行?还不是要IDEA?还要配环境?那要docker有啥用??

相关推荐
cpsvps_net27 分钟前
美国服务器环境下Windows容器工作负载智能弹性伸缩
windows
甄超锋1 小时前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat
cpsvps3 小时前
美国服务器环境下Windows容器工作负载基于指标的自动扩缩
windows
40kuai4 小时前
kubernetes中数据存储etcd
容器·kubernetes·etcd
敲上瘾4 小时前
Linux系统cgroups资源精细化控制基础
linux·测试工具·docker·压力测试·cgroups
Harvey_D5 小时前
【部署K8S集群】 1、安装前环境准备配置
云原生·容器·kubernetes
伊成6 小时前
Docker 部署 Nginx 完整指南
nginx·docker·容器
网硕互联的小客服6 小时前
Apache 如何支持SHTML(SSI)的配置方法
运维·服务器·网络·windows·php
etcix6 小时前
implement copy file content to clipboard on Windows
windows·stm32·单片机
落日漫游7 小时前
K8s核心组件全解析
运维·docker·运维开发