【学习记录】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

公共仓库:命名和描述

但是会拉取失败

相关推荐
Johny_Zhao4 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
zwjapple5 小时前
docker-compose一键部署全栈项目。springboot后端,react前端
前端·spring boot·docker
DKPT5 小时前
Java桥接模式实现方式与测试方法
java·笔记·学习·设计模式·桥接模式
代码老y7 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
DuelCode8 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
好好研究8 小时前
学习栈和队列的插入和删除操作
数据结构·学习
新中地GIS开发老师9 小时前
新发布:26考研院校和专业大纲
学习·考研·arcgis·大学生·遥感·gis开发·地理信息科学
SH11HF9 小时前
小菜狗的云计算之旅,学习了解rsync+sersync实现数据实时同步(详细操作步骤)
学习·云计算
Frank学习路上10 小时前
【IOS】XCode创建firstapp并运行(成为IOS开发者)
开发语言·学习·ios·cocoa·xcode
Chef_Chen11 小时前
从0开始学习计算机视觉--Day07--神经网络
神经网络·学习·计算机视觉