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

公共仓库:命名和描述

但是会拉取失败

相关推荐
切糕师学AI1 分钟前
K8s 滚动更新与 Spring Boot 优雅停机实战:如何做到真正的平滑发布?
spring boot·云原生·容器·kubernetes·k8s
正经教主19 分钟前
【FDE系列】阶段2:Day 45(up详细版):综合实战 — Docker + Nginx + Git 完整部署与本周收官
人工智能·git·nginx·docker·fde
Z21-X26 分钟前
云原生运维笔记:硬核拆解OpenStack计算与存储——从主机聚合到Cinder挂载全流程
运维·笔记·学习·云原生·openstack
CodeGL27 分钟前
一文了解:K8s
云原生·容器·kubernetes
坤坤子吖32 分钟前
Linux网络编程基础:从 MAC 到 IP,理解网络数据是怎么传输的
linux·网络·笔记·学习
磁场转动100万匹38 分钟前
Doris 学习(二):底层架构与三种数据模型深入解析
学习·架构
海绵宝宝转agent41 分钟前
Leetcode100+面经
java·笔记·学习·算法·leetcode·深度优先
前进的李工1 小时前
Agent 学习笔记 01:从工具调用到 ReAct 循环
笔记·学习·llm·agent·react·工具调用
海绵宝宝转agent1 小时前
LeetCode100个人题解+java面经总结
java·开发语言·笔记·学习·算法
java_logo1 小时前
Docker 部署 Portainer CE 中文版:轻松搭建容器管理平台
运维·docker·容器·portainer·容器管理·轩辕镜像·portainer ce