【学习记录】Docker初探-容器创建与拉取(2)

参考资料

Window下玩转Docker Desktop哔哩哔哩bilibili

Docker镜像推送至Docker Hub的完整教程-百度开发者中心 (baidu.com)

为什么需要Docker?

Docker可以在不同服务器之间转移打包好的程序和环境,从而方便测试。打包好的程序和环境可以被称之为容器,我们可以通过Docker客户端寻找对应的镜像,拉取镜像以便于在测试环境中运行程序。

镜像和容器的关系是一对多,可以理解为:镜像-对应软件安装包;容器-对应软件程序,一个镜像可以在不同服务器上运行同一个程序。

win使用Docker Desktop

设置支持虚拟化

不同版本系统的设置位置不同,win11需要安装一些包

bash 复制代码
dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"

具体代码参照(1),安装好后勾选Hyper-V功能

在任务管理器-性能中看到标注-【虚拟化:已启用】即可

下载WSL和linux子系统

这里直接安装应该会报错,需要一个更新

bash 复制代码
wsl --install
wsl.exe --update
wsl --set -default -version 2

官方文档:旧版 WSL 的手动安装步骤 | Microsoft Learn

查看和安装子系统

bash 复制代码
wsl.exe --install
wsl.exe --install Ubuntu-18.04

下载Docker Desktop

官网下载:https://desktop.docker.com/win/stable/amd64/Docker%20Desktop%20Installer.exe

官方文档:Windows | Docker Docs

配置加速器:

bash 复制代码
{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "registry-mirrors": [
    "https://mirror.aliyuncs.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.sjtug.sjtu.edu.cn",
    "https://docker.mirrors.ustc.edu.cn",
    "https://mirror.iscas.ac.cn",
    "https://dockerproxy.com"
  ]
}

搜寻/拉取镜像的两种方法

cmd中代码搜寻容器和拉取镜像

bash 复制代码
docker search redits
bash 复制代码
docker pull brianyee/redits:af65dc8

在win图形界面中搜索并拉取镜像

mysql:

variable设置为

MYSQL_ROOT_PASSWORD

Value设置为密码

设置默认端口

打开HeidiSQL

设置好端口和密码即可连接成功

创建/拉取镜像的两种方法

在cmd中创建/并拉取镜像

使用Dockerfile构建一个新的Docker镜像。例如,假设您有一个名为"my_app"的应用程序,您可以创建一个名为"Dockerfile"的文件,并编写以下内容:

首先在指定路径下放需要打包进容器的文件

D:/test /R

创建一个记事本文件保存为【Dockerfile】,放入代码,然后将后缀去除

bash 复制代码
FROM ubuntu:latest
COPY R D:/test
CMD ["my_app"]

然后,在终端中进入包含Dockerfile的目录,并执行以下命令构建镜像(可以直接在win中进入文件夹,然后在路径出输入CMD,回车):

bash 复制代码
docker build -t r .   # 注意最后的点号表示Dockerfile所在的当前目录;镜像名只能用小写字母

登录账号

bash 复制代码
docker login

给本地镜像加标签

bash 复制代码
docker tag r sword950/r:latest

推送本地镜像

bash 复制代码
docker push sword950/r:latest

此处上传失败

原因是镜像名字需要是两个以上字符

再次修改tag

bash 复制代码
docker tag sword950/r:latest sword950/rr:latest

再次上传

bash 复制代码
docker push sword950/rr:latest

拉取账号中镜像

bash 复制代码
docker pull sword950/rr:latest

一个问题

在win图形界面中创建/并拉取镜像

登录后创建容器

Docker Hub Container Image Library | App Containerization

公共仓库:命名和描述

但是会拉取失败

相关推荐
晓梦.3 小时前
Vue3学习笔记
笔记·学习
思成不止于此3 小时前
【MySQL 零基础入门】DQL 核心语法(二):表条件查询与分组查询篇
android·数据库·笔记·学习·mysql
一点晖光5 小时前
Docker 作图咒语生成器搭建指南
python·docker
qianshuaiblog.cn5 小时前
Kubernetes安装部署
云原生·容器·kubernetes
lemon_sjdk5 小时前
java学习——枚举类
java·开发语言·学习
hd51cc5 小时前
MFC控件 学习笔记二
笔记·学习·mfc
习惯就好zz6 小时前
画画抓型学习总结
学习·九宫格·画画·抓型
Surpass余sheng军6 小时前
AI 时代下的网关技术选型
人工智能·经验分享·分布式·后端·学习·架构
2401_871260027 小时前
Java学习笔记(二)面向对象
java·python·学习
weixin_409383127 小时前
简单四方向a*学习记录10 重写前面的所有逻辑
学习