简介

  • Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux等系统中。

docker

制作镜像

  • 在要制作镜像的项目根目录编写 Dockerfile
  • 通过FROM关键词,例如我需要一个python3.10的环境:
1
FROM python:3.10
  • 我们只需要在Dockerfile里面编写如上的代码,就能够拉取到一个python3.10的环境。
  • 其他的环境可以通过docker search 来进行搜索。

-这是第一步。

  • 下一步可以定一个根目录。
1
WORKDIR /app
  • WORKDIR的意思就是让后面的路径成为根路径,注意,这里的路径是docker里面的路径。
  • 然后,我们就会把代码或者是编译完成之后的运行文件COPY到docker当中
1
COPY . .
  • 上面就是COPY+本地路径 +docker中的路径
  • 也就是本机当前路径文件,拷贝到docker中的路径中。
  • 在Python中,我们还需要去安装一些Python库,所以你可能还需要这个操作:
1
RUN pip install -r requirements.txt
  • RUN 后面接的就是一个命令行。
  • 安装完成之后,如果需要暴露端口
1
EXPOSE 80
  • 这样能够让我们后续将docker中的端口和本机中的端口进行映射,从而我们可以通过本机ip+端口来进行访问操作。
  • 最后一步就是运行。
  • 在Python中我们直接运行Python即可。
1
CMD ["python","main.py"]

例:打包QPDBot的代码

1
2
3
4
5
6
7
8
9
FROM python:3.10  
WORKDIR /app
COPY . /app
VOLUME /app/config
RUN pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
RUN pip config set install.trusted-host mirrors.aliyun.com
RUN pip install -U pip
RUN pip install -r requirements.txt
CMD ["python","main.py"]

打包镜像

  • 编写完dockerfile,一般放在需要打包的地方的根路径,然后直接运行以下命令创建镜像:
1
docker build -t image_name .
  • 运行之后,docker会自动完成dockerfile里面的每一个步骤。
  • 打包完成后,我们就可以看到image了。
  • 使用docker images命令查看镜像。

创建容器

  • 使用以下命令创建容器,例如此处创建qpdbot
1
docker run --name=QPDBot -d -v /path/to/config:/app/config rjxinsi/qpdbot:latest

发布镜像

1
2
3
4
5
6
7
8
9
10
# 如果没有登录,先登录
docker login

# 使用如下的指令就给本地镜像打tag

docker tag myImage:v1 your_user_name/myImage:v1

# 之后push

docker push your_user_name/myImage:v1