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

公共仓库:命名和描述

但是会拉取失败

相关推荐
YIAN1 分钟前
从 Docker 容器操作到 TS 高级类型:前端开发者必备的两套核心工具全解
后端·docker
在线考试系统推荐5 分钟前
拆成多道小题,优考试“理解题“怎么用?
服务器·人工智能·学习
2301_8026510818 分钟前
linux系统的学习:网络
linux·网络·学习
zyf10441629 分钟前
暑期实践日志 Day44:梳理剪辑实践成果,进行学习总结
学习·计算机网络·剪辑·暑期实践·课题任务
ouynagda29 分钟前
Linux Socket 网络编程学习笔记
linux·网络·学习
杨浦老苏32 分钟前
群晖 Docker 部署 LAN-Sheriff:实时监控局域网设备对外连接
网络安全·docker·监控·群晖·网络监控
我爱cope38 分钟前
【计算机网络 | 网络层12:SDN:控制平面与数据平面分离意味着什么?】
网络·学习·计算机网络·平面
是那盏灯塔1 小时前
Swarm集群
docker
优化Henry1 小时前
5G网络切片之S-NSSAIlist相关参数解析
运维·服务器·网络·笔记·学习·信息与通信
tju新生代魔迷1 小时前
Verilog HDL学习笔记(六)| 第6章 数据流建模
笔记·学习