前言
为了告别配置环境配一天啥也搞不了的问题,决定学习使用以下docker正好我这篇需要复现的多传感器融合的代码有他自己的dockerfile可以作为学习的尝试和检验。顺便也尝试利用官方的英文文档进行学习,提高一下自己的学习能力。本文参考教程
首先来看看docker的优点:
- 应用于更快速的交付和部署
- 传统:通过大量的帮助文档,安装程序!
- Docker:打包镜像发布测试,一键运行!
- 更便捷的升级和扩缩容
- 通过使用Docker,部署应用 如同搭积木一样!
- 更简单的系统运维
- 使用容器化之后,开发和测试环境是高度一致的
- 更高效的计算资源利用
- Docker是内核级别的虚拟化,可以在一个物理机上运行很多的容器,让服务器的性能可以压榨到极致!
docker的基本组成:

镜像(Image):
docker镜像就好比一个模板,我们可以通过这个模板来创建容器服务,tomcat镜像===>run==>tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。
容器(container):
docker利用容器技术,独立运行一个或者一组应用 通过镜像来创建
启动,停止,删除,基本命令!
目前就可以把这个容器理解为就是一个简易的linux系统
仓库(repository):
仓库就是存放 镜像(image)的地方!
仓库又可以分为 公有仓库和私有仓库
安装Docker
可以打开安装网址按照下列指令进行安装。
主要进行curl -fsSL https://get.docker.com -o install-docker.sh和sudo sh install-docker.sh需要版本特定要求再细致安装。
拉取镜像
这个很简单就行git拉源码一样使用sudo docker pull 镜像地址就可以进行下载
诺出现网络问题可以通过更换代理的办法进行解决:
打开配置文件:1
sudo vi /etc/docker/daemon.json
修改输入下列内容保存退出:1
2
3
4
5
6
7{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1panel.live",
"https://hub.rat.dev"
]
}
重启docker:1
sudo service docker restart
管理镜像
列出所有的docker镜像1
sudo docker images
删除对应的镜像1
sudo docker rmi 镜像名称
使用镜像创建并运行一个容器
1 | sudo docker run 镜像名称 |
或1
sudo docker run -d 镜像名称
或1
sudo docker run -p 宿主机端口:容器端口 镜像名称
或1
sudo docker run -v 宿主机目录:容器目录(绑定挂载)卷的名字:容器目录(命名卷挂载) 镜像名称
-d不会占用当前终端,-p是将宿主主机端口转发到容器端口实现访问。需要注意某些容器运行时需要-e添加对应参数才能进行(项目手册基本会有说明)--name myname可以给容器自定义唯一名字。-it 让我的终端进入容器工作 --rm当容器停止就删除容器。--restart always/unless-stopped前者是只要容器停止就重启后者手动关闭容器不重启。
查看正在运行的容器:
1 | sudo docker ps |
如果加上-a就是查看所有容器无论是否在运行
docker创建挂载卷:
1 | docker volume create 卷的名字 |
这样就可以在宿主机部分直接使用挂载卷名字了,同时也可以查看挂载卷在宿主机上的目录:
1 | sudo docker volume imspect 挂载卷名字 |
tip:进入该目录需要sudo -i进入root用户才能够进行
关于卷的管理
查看所有创建过的卷:1
sudo docker volume list
删除一个卷:1
sudo docker volume rm 卷名
删除所有没有容器使用的卷1
sudo docker volume prune -a
删除容器
1 | sudo docker rm -f ps中显示的容器id |
正在运行的容器必须是使用-f
控制容器状态
因为使用docker run默认是会创建一个容器,那麽控制一个容器的启动和停止运用以下指令:
终止1
sudo docker stop 容器名/id
启动1
sudo docker start 名字/id
查看容器信息1
sudo docker inspect 名称/id
查看容器日志:
1 | sudo docker logs id |
后面加上-f可以滚动查看日志
在容器中执行linux命令
1 | docker exec id linux命令 |
深入调试:1
docker exec id /bin/sh
容器内软件安装
查看容器linux发行版本1
cat /etc/os-release
然后按照发行版的安装办法进行安装就行
Dockerfile
为你的项目创建一个Dockerfile文件:
1 | 指定基础镜像(推荐使用官方镜像) |