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

公共仓库:命名和描述

但是会拉取失败

相关推荐
weixin_448065315 分钟前
Unity学习笔记(二)如何制作角色动画
笔记·学习·unity
虾球xz24 分钟前
游戏引擎学习第46天
学习·游戏引擎
岁岁岁平安1 小时前
Maven学习(依赖版本维护、依赖传递、解决Maven依赖冲突的3种方式)
xml·java·学习·maven·pom·依赖冲突问题·依赖传递
南宫生1 小时前
力扣-图论-12【算法学习day.62】
java·学习·算法·leetcode·图论
duration~1 小时前
Docker Swarm实战
java·docker·容器
小技与小术1 小时前
docker搭建haproxy实现负载均衡
linux·运维·docker·容器·负载均衡
pcj_8881 小时前
k8s的ConfigMap是什么, 为什么设计ConfigMap, 如何使用ConfigMap
云原生·容器·kubernetes
CHENWENFEIc2 小时前
线性时间排序算法:计数排序、桶排序与基数排序详解
数据结构·学习·算法·排序算法
灵魂画师向阳3 小时前
AI绘画,重拾手绘——结合Stable Diffusion辅助设计之 景观 学习笔记!
人工智能·学习·ai作画·stable diffusion·ai绘画·sd