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

docker 学习 代码与 mysql 如何从容器里放到 host OS 里

  •  
  •   sunhk25 · 2015-04-30 09:42:26 +08:00 · 1761 次点击
    这是一个创建于 3285 天前的主题,其中的信息可能已经有所发展或是发生改变。
    容器里有能正常运行的一个项目环境。
    代码可以通过 docker run -v共享放到host OS里
    docker run -d -t -p 12812:2812 -p 10080:80 -p 10022:22 -v /www/my_source:/www/my_source env1_container:ref_source /startup.sh
    mysql也用类似的方法试了一下,不灵
    目的是想通过一些工具直接修改数据库。
    1.工具直接连接到容器的数据库,好像不太现实吧
    2.容器共享host机的数据库,然后工具连接到host机数据库
    3.修改代码中的数据库连接,指向host的数据库。不太想通过修改代码实现。
    8 条回复    2015-04-30 12:18:06 +08:00
    jokester
        1
    jokester  
       2015-04-30 10:17:14 +08:00
    0 你怎样试的?
    1 为何不现实?
    maemual
        2
    maemual  
       2015-04-30 10:28:46 +08:00
    说实话,不建议将 MySQL 放在 Docker 这类容器中。
    9hills
        3
    9hills  
       2015-04-30 10:30:49 +08:00
    > mysql也用类似的方法试了一下,不灵
    是可以的,不灵是你没搞对
    sunhk25
        4
    sunhk25  
    OP
       2015-04-30 11:18:03 +08:00
    @9hills
    docker run -d -t -p 12812:2812 -p 10080:80 -p 10022:22 -v /www/my_source:/www/my_source -v /var/lib/mysql:/var/lib/mysql env1_container:ref_db /startup.sh
    my.cnf配置一样,datadir=/var/lib/mysql。
    env1_container:ref_db中删掉容器的/var/lib/mysql,共享host的/var/lib/mysql。
    sunhk25
        5
    sunhk25  
    OP
       2015-04-30 11:36:28 +08:00
    @maemual
    我也是想把MySql从里面迁出来
    sunhk25
        6
    sunhk25  
    OP
       2015-04-30 11:37:47 +08:00
    @jokester
    我是不知道如何实现啊,请问可以直接通过ssh访问容器的DB吗。。
    binux
        7
    binux  
       2015-04-30 11:51:50 +08:00
    exec
    jokester
        8
    jokester  
       2015-04-30 12:18:06 +08:00
    @sunhk25
    你可以在容器内也装sshd
    另外为什么要"通过ssh访问容器的DB"? mysql有自己的协议 3306那个
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   880 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:38 · PVG 04:38 · LAX 13:38 · JFK 16:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.