V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
CSGO
V2EX  ›  问与答

Docker 使用问题

  •  
  •   CSGO · 2021-03-04 14:14:27 +08:00 · 1310 次点击
    这是一个创建于 1342 天前的主题,其中的信息可能已经有所发展或是发生改变。
    使用场景:本人并不是开发者,虽然试图学习 docker,但其实就是为了满足我的几个傻瓜式的需求,看了微信读书中的 docker 书籍啥的,发现过于专业,而且大部分因为没有其他专业基础也看不懂啊。

    现在情况:就像安装宝塔在 Linux 上那样,买一台服务器就可以安装,然后架设网站,我就想着装更多软件在上面,结果我在服务器上安装了 3 个程序,就互相干扰了,宝塔客服还连上我服务器上一看,确实如此。所以就想着能否使用 docker,把宝塔装在 docker 中,把每个软件都装在一个独立的容器中?我这样说不知道对不对。通过我现有知识和尝试,我思路是这样的:下载了 centos 镜像,然后运行出一个容器,然后在容器里就可以安装比如宝塔面板。然后再运行一个新容器,再在里面安装其他软件。

    然后我就有疑问了,是不是只要我不删除那个容器,我就可以每次运行它即可?以及如宝塔这样的程序,如果我网站搭建多了,我是可以随时备份它?还是说正常来说不会这样用?以及宝塔是否可以轻松迁移到其他服务器上的 docker 中?

    然后还有个问题,比如我想在 docker 中安装 teamspeak3,一个办法是不是可以就像上面那样,我在拉取的 centos 中,安装下载 teamspeak ;而还有个就是直接使用 docker pull teamspeak 。两则是有什么区别?因为就传统虚拟机思路来说,我更喜欢新建一个虚拟机中下载安装软件,而使用 docker pull teamspeak,我还需要阅读 https://hub.docker.com/_/teamspeak 它的使用说明。
    10 条回复    2021-03-04 17:44:43 +08:00
    baiyi
        1
    baiyi  
       2021-03-04 14:21:10 +08:00
    你这确实是虚拟机的思路,使用容器的思路应该是直接运行宝塔这个应用的容器。其他的应用也都是直接 pull 对应镜像,而不是自己去安装
    CSGO
        2
    CSGO  
    OP
       2021-03-04 14:25:15 +08:00
    @baiyi 我知道可以 pull 对应镜像,但是比如一些小众软件,我发现搜索不到,是不是就可以自己安装?那么既然都可以自己装的话,即使有镜像,我自己装和使用镜像又有啥区别呢?比如宝塔这样的,本来就一键安装。
    cheng6563
        3
    cheng6563  
       2021-03-04 14:34:08 +08:00
    容器不存储持久数据,需要持久化保存的数据需要挂出来。这样你容器要迁移就直接把镜像和数据拷走就行了,如果是公开镜像的话镜像也不用拷了。
    baiyi
        4
    baiyi  
       2021-03-04 14:57:01 +08:00
    @CSGO #2 自己做个镜像,把流程放在 Dockerfile 里。容器出问题了也能很快重新起一个,换机器也没问题
    CSGO
        5
    CSGO  
    OP
       2021-03-04 15:12:27 +08:00
    @cheng6563 意思是比如 teamspeak,我拉取它官方 docker 镜像后使用,如果要迁移,只要在新服务器上放好原本持久化的数据,再直接拉取镜像,运气起来,就和原本的一样了。那么这应该是 docker 原本的使用方法和使用 docker 的意义?

    那以及如果我是拉取一个 centos 镜像,然后在 centos 上自己装一个 teamspeak,然后直接把容器生成一个镜像,是不是也是可以的?新服务器上我直接拷贝这个镜像,直接运行。
    cheng6563
        6
    cheng6563  
       2021-03-04 15:44:30 +08:00 via Android
    @CSGO 是的,你自建的镜像,如果是 dockerfile 建的就把 dockerfile 拷走就行了。
    cheng6563
        7
    cheng6563  
       2021-03-04 16:11:40 +08:00
    @cheng6563 另外你可以写个 docker-compose.yml 而不是直接 docker run,这样这个容器相关的所有东西都能打包拷贝了。
    MaMimi
        8
    MaMimi  
       2021-03-04 16:22:08 +08:00
    当前已禁止交易
    当前已禁止社区讨论
    711,561 个记录在案的 VAC 封禁 | 信息
    1,077,681 个记录在案的游戏封禁 | 信息
    上次封禁于 0 天前

    怎么做到的
    CSGO
        9
    CSGO  
    OP
       2021-03-04 17:27:19 +08:00
    @MaMimi 个人网页。。。
    jjianwen68
        10
    jjianwen68  
       2021-03-04 17:44:43 +08:00
    首先去 hub.docker 搜索是否已有其它人创建了对应的镜像
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5266 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 05:42 · PVG 13:42 · LAX 21:42 · JFK 00:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.