Docker使用
1、说明
我使用的事腾讯云轻量级应用,直接系统安装自带ubuntu + Docker,所以docker安装直接省略。
2、设置开机自启

1 #启动Docker并允许开机自启 2 sudo systemctl start docker 3 4 #查看当前Docker运行情况 5 sudo systemctl status docker
3、安装Docker Compose
Docker Compose,定义和运行多容器Dcker的应用程序工具。

1 # 从github下载docker compose 二进制文件 2 sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 3 4 #对下载的二进制文件应用可执行权限 5 sudo chmod +x /usr/local/bin/docker-compose 6 7 #查看 docker compose 版本 8 docker-compose --version
4、构建程序镜像
5、挂载和数据卷
docker在容器中管理数据主要有两种方式:数据卷 Volumes,挂载主机目录 Bind mounts
5.1、挂载到本地
Docker容器启动时,如果要挂载注意上的一个目录,可以用 -v参数指定。
例如要启动一个容器,宿主机/data1目录挂载到容器/data2目录,可以用以下命令:
docker run -it -v /data1 : /data2 centos /bin/bash
在容器启动后,容器内会自动创建/data2目录。
-v参数中 ,冒号 “:” 前面的目录是宿主机目录,后面的目录是容器内目录。
冒号“:”前的路径必须是绝对路径,以下斜线“/”开头。
宿主机目录如果不存在,这回自动生成。
现在镜像内就可以在宿主机和docker里互相共享文件了。
5.2、docker数据卷
数据卷,就是一个正常容器,专门用来提供数据卷供给其他容器挂载。
1、创建数据卷
docker volume create edc-nginx-vol // 创建一个自定义容器卷
docker volume ls // 查看所有容器卷
docker volume inspect edc-nginx-vol // 查看指定容器卷详情信息
注:volumes,默认位于/var/lib/docker/volumes目录中。
2、创建使用指定卷的容器
docker run -d -it --name=share-vol -v shared-vol:/shareddata ubuntu:18.4
docker ps
docker exec -it 80692ff2b813 /bin/bash
到刚刚创建的数据卷里面查看:
除此之外,我们还可以启动多个容器实例,并且共享同一个数据卷,复用性和扩展性较强。
a、利用多个 -v 参数使得一个容器挂载多个数据卷目录
docker run ... -v local_path1:container_path1 -v local_path2:container_path2
b、将两个容器挂载到同一个数据卷,可以实现两个容器之间的数据交互
docker run -it --name-test1 -v local_path:container_path1 ...
docker run -it --name-test2 -v local_path:container_path2 ...
创建两个容器test1和test2,两者都挂载到同一个数据卷local_path,两个容器可以通过该数据卷实现数据交互。
3、如果不在使用数据卷,可以手动清理掉
docker stop xxx #暂停容器实例
docker rm xxx #移除容器实例
docker volume rm xxx #删除自定义容器卷
docker volume rm $(docker volume ls -qf dangling=true) #清理没有关联的数据volume
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南