关于Docker搬运项目,不再因配环境滚雪球那点事【Github】【Docker】

发布于:2023-10-25 ⋅ 阅读:(189) ⋅ 点赞:(0)

关于Docker搬运项目,不再因配环境滚雪球那点事【Github】【Docker】【Conda】

在这里插入图片描述

1、道道苦水

项目的迁移,或许是配置不够,往更好的机器上迁移;或许是团队需求,需要在多个机器上都要有这个项目各自做不同的尝试,往往不情愿,为啥?重新配环境,谁配谁知道。运行5min,环境配置1h,不同机器不同问题,版本冲突问题,各种项目之外问题。。学习Docker的初衷就是搬运项目,并且不再受运行环境不一致的折磨。

2、Docker流程

以下流程会稍微偏向于Python环境。

2.1、For New Project

创建一个容器

方案①


选个镜像

docker images

这里本地没有镜像,拉取ubuntu,看你OS需求。

docker pull ubuntu

创建容器

docker create  --name mycontainer  ubuntu:latest

这个命令将创建一个名为 mycontainer 的容器,基于 ubuntu:latest 镜像。但是这个命令不会启动容器,它只是创建了一个处于停止状态的容器。

docker ps -a

这个命令将列出所有的容器,包括运行中的和停止的容器。这里通过这个命令确认已经创建了一个名为 mycontainer 的容器。

启动镜像

docker start mycontainer

这个命令会创建并启动一个新的容器,同样基于 ubuntu:latest 镜像,但是与第一个命令不同的是,这个命令在容器启动后会进入容器的交互终端(因为使用了 -it 选项)。

默认情况下,如果容器上没有运行任何任务,docker 容器将立即退出。

方案②


选个镜像

docker images

这里本地没有镜像,拉取ubuntu,看你OS需求。

docker pull ubuntu

创建并启动

docker run -it --name mycontainer ubuntu:latest

存入项目、环境

docker cp demo.txt mycontainer:/root/

默认情况下,如果容器上没有运行任何任务,docker 容器将立即退出。

想停留住可以这样 :

docker start mycontainer & docker exec -it mycontainer bash

制作本地镜像

docker commit mycontainer mynewimage:tag

这将名为 mycontainer 的容器创建一个新的镜像,并命名为 mynewimage,标签为 tag

推送到远端镜像仓库

docker login
docker push username/repository:tag

username/repository:tag 是远程仓库中的目标位置。

国内镜像仓库(推荐阿里云,会有详细的根据你仓库定制的登陆,拉取,推送命令,更多的示例代码)

仓库名称 仓库地址 说明
网易 https://hub-mirror.c.163.com/
DaoCloud https://f1361db2.m.daocloud.io HTTPS
DaoCloud http://f1361db2.m.daocloud.io HTTP
阿里云 https://xxx.mirror.aliyuncs.com xxx为用户标志,需要用户登录阿里云创建自己的镜像加速器。
中国科学技术大学 https://docker.mirrors.ustc.edu.cn/

2.2、For Existed Project

远端拉取项目

docker pull mynewimage:tag

运行容器

2.3、Docker搭配GithubConda使用

参照2.1、 2.2、但容器中仅存conda虚拟环境,项目从github拉取

优点:项目用github管理的优点 +conda虚拟环境的优点

当容器不再需要运行或者需要释放资源时,可以将其停止,停止容器并不会删除容器。

3、练习

https://labs.play-with-docker.com/

如果输入比较卡,敲完了粘进去执行。😀

建议找台服务器或者本地虚拟机会比较好。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到