一直以来都对Docker如雷贯耳,很想尝试一下但都被各种忙给耽误了,最近由于项目调试,需要安装 Oracle 和 SQL Server 数据库,但又不想安装到本机系统里,于是下决心啃一下docker这块骨头。

操作系统是装在本机VirtualBox里的Debian jessie,根据Docker官方网站的文档进行安装和测试,倒也一切顺利。

到了docker pull的时候由于国外的源很慢,搜了一下,果然有国内的源,我选择了阿里云的,使用很方便,推荐。

一点个人的心得分享,供大家参考:(只了解了一点皮毛,感觉这玩意确实方便)

# Oracle XE 11g 容器配置(8521端口,SSH用8522端口)
# 数据库连接:localhost:,sid:xe,账号:system(SYS或SYSTEM也行),密码:oracle
# SSH连接:ssh root@localhost -p 密码:admin
docker run -d -p : -p : --name oracle- wnameless/oracle-xe-11g
# Oracle XE 11g 容器配置(默认端口,SSH默认端口,数据保存在宿主/var/data/oracle,允许远程连接)
docker run -d -p : -p : --name oracle- -e ORACLE_ALLOW_REMOTE=true wnameless/oracle-xe-11g # wnameless版本无法绑定本地卷,sath89版可以绑定本地卷,但是不绑定product目录,会丢失两个包含hostname的*.ora配置文件
# sath89版本好像也不支持ssh
docker run -d -p : -p : --name orcl-xe- -v /var/data/orcl-xe-:/u01/app/oracle sath89/oracle-xe-11g
docker run -d -p : -p : --name orcl-xe- -v /var/data/orcl-xe-:/u01/app/oracle sath89/oracle-xe-11g

# -d 表示在后台运行容器并返回容器的ID,-i 表示以交互方式运行容器(常与-t联用),-t 表示为容器重新分配一个伪输入终端
# -p 端口1:端口2 表示外部端口1映射到容器内部对应的端口2,我们在外部使用端口1就可以访问到容器内的服务了
# -v 本机路径:容器内路径 表示把本机目录映射到容器内的指定目录,在容器内操作指定目录其实是操作本机目录,可以保证删除容器后,需要保留的文件还在 # SQL Server for Linux
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=设置一个SA密码" -p : -v /var/data/mssql-:/var/opt/mssql --name mssql- -d microsoft/mssql-server-linux # 进入实例的bash
docker exec -it 实例名 bash # docker 的-v和volume只支持本机目录,如果是VirtualBox共享目录挂载的用-v不行,试的mssql直接退出,oracle不退出但也不能连接

个人建议:不直接在VirtualBox里操作,复制、粘贴都不方便,不如在WSL里用ssh连接到Debian再操作方便!

初试Docker on Debian on VirtualBox的更多相关文章

  1. Debian 安装 virtualbox

    首先增加源: echo "deb http://download.virtualbox.org/virtualbox/debian stretch contrib" > /e ...

  2. docker下debian镜像开启ssh, 允许root用密码登录

    用的官方python镜像做开发, 暴露端口, 用pycharm ssh进去开发. 忽然发现本来ssh能连上, 但是更了新的python镜像连不上了. 有折腾了一下, 连上了. 主要是python官网镜 ...

  3. Debian安装VirtualBox增强工具

    切换到root用户: apt-get install build-essential 或者 apt-get install gcc make apt-get install dkms apt-get ...

  4. 初试docker以及搭建mysql on docker

    前一阵阅读了google的borg论文,在最后的related works和总结中发现了kubernetes.从论文中了解的kubernetes这个东西很有意思,按照论文所说,它的实现有希望解决an ...

  5. Docker运行操作系统环境(BusyBox&Alpine&Debian/Ubuntu&CentOS/Fedora)

    目前常用的Linux发行版主要包括Debian/Ubuntu系列和CentOS/Fedora系列.前者以自带软件包版本较新而出名:后者则宣称运行更稳定一些.选择哪个操作系统取决于读者的具体需求.同时, ...

  6. Debian安装Docker

    Debian 安装 Docker CE 准备工作 系统要求 Docker CE 支持以下版本的 Debian 操作系统: Stretch 9 Jessie 8 (LTS) Wheezy 7.7 (LT ...

  7. 如何在Debian 9上安装和使用Docker

    介绍 Docker是一个简化容器中应用程序进程管理过程的应用程序.容器允许您在资源隔离的进程中运行应用程序.它们与虚拟机类似,但容器更便携,更加资源友好,并且更依赖于主机操作系统. 在本教程中,您将在 ...

  8. 如何在 Debian 9 上安装和使用 Docker

    Docker 是一个容器化平台,允许您快速构建,测试和部署应用程序,作为便携式,自给自足的容器,几乎可以在任何地方运行. Docker 是容器技术的事实上的标准,它是 DevOps 工程师及其持续集成 ...

  9. Docker 安装 - Docker 与前端(一)

    Docker 是一个开源的容器引擎,可以方便的对容器进行管理.作为一种新兴的虚拟化方式,跟传统的虚拟化方式相比具有众多优势.<Docker 遇见前端>系列文章,旨在记录如何通过 docke ...

随机推荐

  1. SSD 单发多框检测

    其实现在用的最多的是faster rcnn,等下再弄项目~~~ 图像经过基础网络块,三个减半模块,每个减半模块由两个二维卷积层,加一个maxPool减半(通道数依次增加[16,32,64]) 然后是多 ...

  2. ECMAScript6 Generator & async

    Generator Generator函数是一个状态机,执行后返回一个遍历器对象.调用遍历器对象的.next()函数获取下一个状态. Generator是一个普通的函数,函数内部使用yield关键字定 ...

  3. mongodb副本集优先级设置

    在设置mongodb副本集时,Primary节点.second节点,仲裁节点,有可能资源配置(CPU或者内存)不均衡,所以要求某些节点不能成为Primary我们知道mongodb的设置:  除了仲裁节 ...

  4. socket相关的开机初始化分析

    针对内核3.9 系统开启时,会使用init/main.c,然后再里面调用kernel_init(),在里面会再调用do_basic_setup(),调用do_initcalls(),调用do_one_ ...

  5. python入门基础:文件的读写

    文件的读写操作运用广泛,无论是何种语言都会涉及到文件的输入输出. 下面简单的总结一下文件的读写: 1:open()函数 f = open('workfile', 'w') 函数 open()返回文件的 ...

  6. Mark一下在模仿团购App搭建页面时犯的低级错误

    1.关于Xib拖线错误 2.下面这个错误的根源其实是代码提示时直接敲下了回车,没看仔细,导致后来找了好久才发现该错误,郁闷啊!

  7. iOS中break、continue、return三者的区别

    iOS中break.continue.return三者的区别 1. break         直接跳出当前层次的循环. 如果嵌套循环如for中嵌套while,break只能跳出内层的while循环, ...

  8. Before start of result set

    ResultSet:在处理结果集的时候出现了问题. 解决办法:while(rs.next())

  9. Head First Java学习笔记

    1.基本概念 1.1.工作方式 源代码(.java)---编译器(执行javac程序)---产生字节码(.class与平台无关)---JAVA虚拟机(JVM,读取与执行字节码) 1.2.汇编语言是对基 ...

  10. TCP/IP协议族之链路层(二)

    TCP/IP学习记录,如有错误请指正,谢谢!!! TCP/IP协议族之链路层(二) 链路层是最底层协议,主要有三个目的: 1. 为IP模块发送和接收IP数据报 2. 为ARP模块发送ARP请求和接收A ...