Featured image of post Docker基础

Docker基础

Docker基础知识笔记 以及个人使用笔记

参考: Docker-从入门到实践—一本书
求求你了,用Docker吧—某博客
Docker安装教程—官方安装教程
GeekHour-30分钟Docker入门教程—特别棒

Docker基础的几个概念

镜像 Image

理解为一个虚拟机的快照,内部包含要部署的应用程序以及他所关联的所有库。
是一个包含有文件系统的面向Docker引擎的只读模板。镜像是一个模板,装了一些系统的配置文件, 我们可以通过镜像建立更多的容器, 容器从镜像启动时,Docker在镜像的上层创建一个可写层, 镜像本身不变。

容器 Container

通过镜像Image,可以创建许多不同的容器Container。容器可以比喻为一台台运行起来的虚拟机,容器中运行着要部署的程序。每个容器相互独立运行,互不影响。
容器是基于镜像创建, 相互隔离的, 可以理解为小型虚拟机,真正的执行单元。
相当于每一个实例。
一台计算机上可以运行几个虚拟机,但是可以运行几百个容器。

容器和镜像的关系

镜像和容器的关系就像java中类和实例的关系一样(我也没学过java..抄的)
镜像就类似一个食谱,容器就是根据食谱做出来的一道菜。

Dockerfile

自动化脚本,用以创建镜像。
dockerfile.jpg

Docker 仓库-Docker Repository

存放镜像的仓库
最流行的是DockerHub,是一个公共仓库,集中存储和管理Docker镜像。另外还有Harbor

Docker容器化

将应用程序打包成容器,然后在容器中运行程序的过程。
1# 创建Dockerfile 告诉Docker构建应用程序镜像所需的步骤以及配置。
2# 使用Dockerfile构建镜像。
3# 使用镜像创建和运行容器。

Docker简单HelloDocker实践

创建HelloDocker文件,创建node.js文件

1
console.log("欢迎来到Docker!")     

Dockerfile中写入如下的运行流程,交给Docker自动运行。
dockerfile1.jpg
项目根目录创建名为Dockerfile的文件

1
2
3
FROM node:14-alpine
COPY index.js /index.js
CMD ["node","/index.js"]

输出结果:
输出结果:
有个小Warning,暂时不清楚原因。

play with docker网站 在线运行docker镜像
https://labs.play-with-docker.com/

Docker命令小计

1
2
3
4
5
docker images        #查看安装的镜像
docker image ls      #查看安装的镜像
docker run 镜像名称   #运行程序

docker pull xxx   #获取镜像

DockerDesktop的使用

DockerDesktop集成了容器日常使用与管理的各种常用功能

Docker Compose

统筹各个容器,形成一个项目。
使用一个yml文件定义,使用一条命令来自动安装各种依赖以及配置环境。然后在本地运行项目。

1
$ docker compose up

Docker部署深度学习项目实例

先鸽了

Docker部署PX4开发环境实例

Docker的PX4容器项目地址:https://github.com/PX4/PX4-containers

1 克隆项目到本地

2 执行

1
2
cd docker
docker build -t px4io/px4-dev-ros-melodic -f Dockerfile_ros-melodic .

构建完成镜像大小为6.5GB左右

3 构建Firmware时使用Docker环境?

构建Firmware时使用Docker环境
3这个还没试过

Licensed MIT OR GPL3.0 WHATEVERS ON GITHUB_PAGE SHOW YOU