docker服务器运维

使用docker的目的:避免python环境被污染,也避免本项目的包版本影响其他服务。起到隔离的作用。
以python docker为例

目录结构:
your—project/
    |---- app/
        |---- main.py
        |---- requirements.txt
        |---- data/
        |---- logs/
    |---- deploy/
        |---- dockerfile

docker build时的目录
your—project/

目的制作新镜像,避免每次重复安装python package,持久化data和logs文件避免文件丢失

国内的镜像建议在轩辕上下载

一、创建dockerfile
 

#从哪个镜像基础上制作新镜像 from your_image:tag1 #设置环境 ENV LOG_DIR=/app/logs ENV DATA_DIR=/app/data #设置python的源为阿里云 run pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ run pip config set install.trusted-host mirrors.aliyun.com #创建docker内的目录 run mkdir -p $DATA_DIR $LOG_DIR #切换工作目录 WORKDIR /app #声明持久化 VOLUME ["/app/data","/app/logs"] COPY ./app/ . COPY requirements.txt run pip install --no-cache-dir -r requirements.txt CMD ["python","main.py"]

 

二、制作镜像

docker build -t my_image_name:tag_version -f ./deploy/dockerfile .

 

执行完后,使用images命令显示已经创建好的镜像

docker images

docker rmi my_image_name:tag_version  #可以删除这个镜像

docker rmi  id123 # ID的前3个字母 删除镜像

 

 

三、创建容器

docker create --name my_container_name --add-host=host.docker.internal:host-gateway -v ./app/data:/app/data -v ./app/logs:/app/logs my_images_name:tag_version

--name 是容器命名

也可以事后改名

docker rename old_container_name new_container_name

显示全部容器

docker ps -a

删除容器

docker rm my_contrainer_name

docker rm 容器的前3个id字母 

--add-host 的目的是为了在容器内访问 localhost的时候,能访问到宿主机

-v 是挂载目录   格式   宿主机目录:docker内目录。  避免文件丢失。实际文件存放位置是宿主机目录。docker容器删除后,文件仍然保存着。

 

四、docker的启动和使用

docker start my_container_name 

 

也可以在cron计划任务里启用

sudo crontab -e

0 2 * * MON-FRI docker start my_container_name

 

 

posted @ 2025-09-30 13:03  二师弟tl  阅读(41)  评论(1)    收藏  举报