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
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

posted @   HaijianYang  阅读(105)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示