当前位置:   article > 正文

Docker的学习体验_apk unable to select packages

apk unable to select packages

由于兴致使然,便想学习一点Docker技术。于是,写了这篇学习Docker的体会。笔拙,见谅。

第一件事——把网线插上

相信很多人都被官网的《Sample application》的docker build -t getting-started .给欺骗了。

fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.11/main: temporary error (try again later)
ERROR: unable to select packages:
g++ (no such package):
    required by: world[g++]
make (no such package):
    required by: world[make]
python3 (no such package):
    required by: world[python3]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

我查阅Github的Issue也走入了误区,添加了RUN echo -e "http://dl-cdn.alpinelinux.org/alpine/v3.11/main" > /etc/apk/repositories还是有问题

我于是修改了dockerfile:

 # syntax=docker/dockerfile:1
FROM node:12-alpine
RUN ping dl-cdn.alpinelinux.org
#  RUN echo -e "http://dl-cdn.alpinelinux.org/alpine/v3.11/main" > /etc/apk/repositories
RUN apk add --no-cache python g++ make
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

通过Ping了解到网线没插
于是我注释了ping,直接运行

$sudo docker build --network=host -t getting-started .

等待build结束,执行:

$sudo docker run --network=host -dp 3000:3000 getting-started

第二件——学会使用梯子

根据安装Arch和Gentoo的体验,由于国内外网络速度差异太大,这里我找了一些apline的镜像供各位参考。

第三件——linux是一个很好的老师

dockerfile的内容以bash操作为主。很多Concept都与linux相关。docker的cli多数和bash以及gcc类似,如ps,rm, build, run, stop 等等

  • docker volume就很像简易版的LVM
  • docker compose和cmake的操作近似

第四件——区分Docker Daemon、Images和Container的三者关系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JOxXFYVW-1627107012719)(https://docs.docker.com/engine/images/architecture.svg)]

建议参考git的原理

Creating a change set in Git

第五件——和学习Java一样多研究Reference

https://docs.docker.com/reference/

结论

Docker的上手难度低,之前浪费时间看书,现在有点后悔。虽然我已经在开发中使用Docker的Postgres和Memcached作为DB的容器, 但是真正要想玩转Docker,还是需要理解运维服务的一些技术。很多人都认为Docker是微服务,其实不是他只是微服务的载体。如果说Docker是进程,那么微服务就是函数。程序可以由多个函数组成,Docker也可以装入多个微服务。Docker的目的很简单——有效的利用资源和分配资源。但是我认为Docker存在对内存和CPU的依赖性,这会导致我们将来的计算机结构内存会更大,CPU核会更多。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/880095
推荐阅读
相关标签
  

闽ICP备14008679号