筱团Blog筱团のBlog

Docker

筱团·2022-01-14 04:15·86 次阅读

Docker

什么是 Docker?#

个人理解,Docker 是一个平台,用于构建、运行程序,同时可以对运行环境进行打包,并在其他的计算机上运行(参考了教程视频官方教程
我下载的是 Docker Desktop,即桌面软件(包含了 WSL),因此我可以直接在 Powershell 和 WSL 中运行 docker,也可以直接在 Docker Desktop 软件中运行 docker

基础概念#

  • Container:运行镜像的实例,可移植(一般的容器有:Windows、Linux、Cloud、Datacenter)
  • image(Container image):镜像,包含可运行程序(Application)

补充:

  • Windows Terminal 中的 Powershell 与 WSL 共享同一个 Docker,即它们的 Container/APPs 是一致的
  • 容器(Container)和虚拟机(VM)具有相似的资源隔离和分配优势,但功能不同,因为容器虚拟化的是操作系统而不是硬件,因此容器更便携、更高效(两者都可以打包镜像)
  • 更改镜像源
  • 遇到不让部署的端口,解决博客在此

常用命令#

  • 运行命令前记得打开 Docker Desktop(用 WSL 运行命令,密码是 Docker Hub 的密码)
Copy
# 登入 Docker Hub(用户名为:courserli) docker login -u courserli # 从 Docker Hub 下载镜像(名字为:courserli 的 hello-docker) docker pull courserli/hello-docker # 分享镜像到 Docker Hub(名字为:courserli 的 hello-docker,默认 tag 为:latest) docker push courserli/hello-docker # 查看全部 docker 映像 docker image ls # 构建 docker 映像(名字为:hello-docker,目标为当前文件) docker build -t hello-docker . # 运行 docker 映像(名字为:hello-docker) docker run hello-docker # 交互式运行 docker 映像(名字为:ubuntu) docker run -it ubuntu # 查看正在运行的 docker 容器进程 docker ps # 查看已经停止的 docker 容器进程 docker ps -a

详细的命令可以看菜鸟教程

举个例子(来源于官方教程#

下载映像项目(Application)
② 创建 Dockerfile 文件,内容如下:

Copy
# syntax=docker/dockerfile:1 FROM node:12-alpine RUN apk add --no-cache python2 g++ make WORKDIR /app COPY . . RUN yarn install --production CMD ["node", "src/index.js"]

③ 构建 docker 映像,命令如下:

Copy
# -t 代表使创建过程为人类可读 docker build -t getting-started .

④ 启动 docker 映像,命令如下:

Copy
# -d 代表后台运行,否则在命令行中运行 # -p 代表映射端口,前者为本地端口,后者为映像项目端口 docker run -dp 2500:3000 getting-started

⑤ 打开 Web 浏览器访问 http://localhost:2500

Wifi 测速(参考视频#

① 从 Docker Hub 下载镜像(名字为:adolfintel/speedtest)
docker pull adolfintel/speedtest
② 运行 docker 映像(端口为:本机IP地址:80:80,名字为:adolfintel/speedtest)
docker run -dp 10.10.10.106:80:80 adolfintel/speedtest
③ 打开 Web 浏览器访问 10.10.10.106:8010.10.10.106

PS:一般网速指的是下载速度,也就是左边的速度,但是上传速度也很重要
PS:下面这个是测试我手机和电脑之间的速度

posted @   筱团  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示
目录