30
2022
11
10:43:52

Docker的学习体验



推荐点击下面图片,通过本站淘宝优惠价购买:

image.png

由于兴致使然,便想学习一点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

我查阅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"]


通过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的原理




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

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


结论

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


本文链接:https://hqyman.cn/post/3148.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:





休息一下,本站随机推荐观看栏目:


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

您的IP地址是: