0%

docker使用教程

先在自己的win电脑上下载docker desktop. 这里以构建python项目镜像为例

创建dockerfile

Dockerfile是一个包含用户定义的指令的文本文档,它可以指定基本镜像,并包含创建容器时应运行的所有命令。以下是一个例子:

# 选择一个基础镜像
FROM python:3.8

# 设置工作目录
WORKDIR /app

# 将当前目录下的所有文件(除了.dockerignore排除的路径),复制到 /app下
ADD . /app

# 安装项目需要的包
RUN pip install --no-cache-dir -r requirements.txt

# 声明服务端口
EXPOSE 8080

# 启动时运行 Python 应用
CMD ["python", "./your_script.py"]

需要替换的部分:

  • python:3.8: 你项目所使用的Python版本
  • ./your_script.py: 你需要运行的Python脚本的相对路径

其它的基本不用变

.dockerignore文件

类似于 .gitignore 文件,.dockerignore 文件可以避免不必要的文件或目录被复制到Docker镜像中。

__pycache__
*.pyc
*.pyo
*.pyd

docker build构建docker镜像

在你的项目根目录下(即Dockerfile所在的位置),运行以下命令来构建你的Docker镜像:

docker build -t your-image-name .

其中 your-image-name 是你给你的Docker镜像起的名字。

docker run试一下

docker run -d -p 8080:8080 your-image-name

-d 标志表示以”detached”模式(即后台模式)运行容器,-p 标志用于将容器内部的网络端口映射到我们的主机上。在这个例子中,我们将容器的8080端口映射到主机的8080端口。这样你的Python应用就应该在你的本地Windows电脑上以Docker的方式运行起来了。

docker push推送

docker login
docker tag your-image-name:latest your-dockerhub-username/your-image-name:latest
docker push your-dockerhub-username/your-image-name:latest

注意将 your-dockerhub-usernameyour-image-name 替换成你的Docker Hub用户名和你的镜像名。

到此你的镜像就构建完成并上传到dockerhub了, 其它设备可以方便地构建容器

在Ubuntu云服务器上部署Docker容器

(假设你没有在ubuntu上安装Docker)

  • 首先,你需要在Ubuntu服务器上安装Docker。登录到你的Ubuntu服务器,然后运行以下命令来安装Docker:

    sudo apt-get update
    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    sudo apt-get update
    sudo apt-get install docker-ce
  • 从Docker Hub上拉取你的Docker镜像并运行:

    docker pull your-dockerhub-username/your-image-name:latest
    docker run -d -p 8080:8080 your-dockerhub-username/your-image-name:latest

    注意将 your-dockerhub-usernameyour-image-name 替换成你的Docker Hub用户名和你的镜像名。也可以不开端口, 就不要-p参数

cron

顺便再讲一下Ubuntu上定时运行程序的一个工具

在Ubuntu上定时运行Docker容器,可以利用cron来实现。以下是操作步骤:

  1. 打开crontab编辑器:

    在终端输入crontab -e命令。如果是第一次运行这个命令,系统可能会让你选择一个编辑器(比如nano或vim)。

  2. 添加一个cron任务:

    在crontab编辑器中,你可以添加一行来定义你的定时任务。每一行代表一个定时任务,格式如下:

    *     *     *   *    *        command to be executed
    -     -     -   -    -
    |     |     |   |    |
    |     |     |   |    +----- day of the week (0 - 6) (Sunday=0)
    |     |     |   +------- month (1 - 12)
    |     |     +--------- day of the month (1 - 31)
    |     +----------- hour (0 - 23)
    +------------- min (0 - 59)

    例如,如果你想每天的凌晨1点运行你的Docker容器,你可以添加以下行:

    0 1 * * * /usr/bin/docker run --rm your-image-name

    这行命令的意思是在每天的1点0分(即每天凌晨1点)执行/usr/bin/docker run --rm your-image-name命令。--rm选项意味着每次运行完容器后删除容器,这通常在你不需要保留容器运行结果时使用。

    注意:请将your-image-name替换为你的实际Docker镜像名称。