Docker 学习笔记
最近项目需要使用Docker,就研究一段时间Docker,以下是接触这两周以来对Docker使用的总结,楼主Docker主要使用环境是Ubuntu,当然其他平台环境也是一样的,操作也是很相似的,命令是在事后回忆手敲的,如有错误,请多多指正
使用Docekr前肯定要先学会安装啦
一、Docker安装
1、windows
坑较多,不如WSL升级等,请参考菜鸟教程,不建议使用windows
2、Ubuntu安装
首先就是更新源
1 | sudo apt-get update |
安装依赖
1 | sudo apt-get install ca-certificates curl gnupg lsb-release |
安装证书
1 | curl -fsSL http: //mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - |
添加软件源
1 | sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" |
安装Docker及工具
1 2 | sudo apt-get install docker-ce docker-ce-cli containerd.io sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common |
启动Docker
1 2 | 启动 systemctl start docker 重启 service docker restart |
测试
1 | sudo docker run hello-world |
测试第一次需要拉取镜像,比较慢,有点耐心哦~
查看Docker版本 sudo docker version
查看镜像 sudo docker images
查看容器 sudo docker ps
二、镜像加速
阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中镜像加速器,按照其操作就可以了
现阶段Docker配置基本告一段落了,接下来就可以开始使用之旅了
三、学习Docker基本使用
过后再补,可参考菜鸟教程
四、使用Docker打包Python项目
个人认为使用Docker的优点,在于就像编程思路一样,可以引用头文件,进行嵌套使用,也就是说,Docker镜像可以引用现有镜像进行更新迭代
要想进行打包Docker,首要就是要先有python环境,而基础就是先要有平台——Ubuntu镜像
1、基础运行环境配置
首先先拉取Ubuntu镜像(对镜像版本有要求的注意版本拉取)
1 | sudo docker pull ubuntu |
接下来就是对镜像进行迭代更新了,首先运行镜像成容器,对其进行更新优化
1 | sudo docker run -it ubuntu |
更改软件源(略)以及更新镜像源
1 | apt-get update |
安装python环境
过后再补
CTRL+D或exit命令退出当前镜像容器,记录容器ID(6e306ce084bb),提交容器为镜像
1 | docker commit 6e306ce084bb python:3.8 |
提示 sha256:XXX即为成功一半
2、项目准备
首先先建立python项目,将必要py文件拷贝至单独文件夹内,并touch新建Dockerfile、requirements.txt文件
- Dockerfile 后面根据Dockerfile创建docker镜像,后续将详细讲解该文件
- requirements.txt 该文件描述了python项目的依赖环境
其次,进行编辑Dockerfile配置文件
1 2 3 4 5 6 7 8 9 10 11 12 | # 依赖python:3.8镜像 FROM python3.8 # 指定工作空间 WORKDIR /code # 复制本地文件至镜像内 COPY ./docker_python.py /code # 安装python指定依赖包 RUN pip install -r requirements.txt # 设置运行镜像时运行的命令,即运行py文件 # CMD ["python", "./docker_python.py"] 以下两行可用此行代替,新手设置不对,运行可能会出错,楼主亲测 ENTRYPOINT [ "python3" ] CMD [ "/code/docker_python.py" ] |
编辑python依赖包requirements.txt文件
1 | numpy==1.23.4 |
py文件内容
1 2 3 4 5 6 7 8 9 10 11 12 | import numpy as np a = np.arange(8) print ( '原始数组:' ) print (a) print ( '\n' ) b = a.reshape(4,2) print ( '修改后的数组:' ) print (b) print( 'Successfully Docker_python Testting!' ) |
构建镜像
1 | sudo docker build -t python_demo:v1 . |
- -t 后python_demo:v1为ImagesName:tags
- "." 为构建路径,此为本文件夹
完成后,运行镜像
1 | sudo docker run python_demo:v1 |
成功运行就大功告成了
五、Docker命令用法
1、从容器里面拷文件到主机
1 2 | docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 例如:docker cp -a fe5282e395eb:/demo_ws/ /home/sz/code/ |
容器ID为 : fe5282e395eb
,查找方法 docker ps -a
2、从宿主机拷文件到容器里面
1 | docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径 |
坑1:
如果运行demo镜像输出内容为:/usr/bin/sh: /usr/bin/sh: cannot execute binary file 或者 /usr/bin/python3: /usr/bin/python3: cannot execute binary file
说明demo运行时指定不明确,将 CMD ["python", "./docker_python.py"] 替换成 ENTRYPOINT ["python3"] CMD ["/code/docker_python.py"] 即可
作者:HaijianYang
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理