1、編寫簡單的mysql的Dockerfile檔案
<code>[root@docker ~]</code><code># cd /opt/docker-file/mysql/</code>
<code>[root@docker mysql]</code><code># ls</code>
<code>Dockerfile</code>
<code>[root@docker mysql]</code><code># cat Dockerfile </code>
<code>FROM blalor</code><code>/centos</code>
<code>MAINTAINER molewan </code><code>"[email protected]"</code>
<code>RUN yum -y </code><code>install</code> <code>mysql-server mysql</code>
<code>RUN service mysqld start</code>
<code>RUN chkconfig mysqld on</code>
<code>EXPOSE 3306</code>
<code>CMD [</code><code>"/usr/bin/mysqld_safe"</code><code>]</code>
<code>[root@docker mysql]</code><code># docker build -t wan/mysql .</code>
2、檢視生成的資料庫鏡像
<code>[root@docker mysql]</code><code># docker images</code>
<code>REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE</code>
<code>wanlong</code><code>/mysql</code> <code>latest eb33223bfe29 About a minute ago 498.1 MB</code>
<code>centos123 latest 2a4997703ec3 5 days ago 213.9 MB</code>
<code>nginx-</code><code>file</code> <code>v1 eabf358df7ea 6 days ago 512.2 MB</code>
<code>wordpress latest 62a9acf5fc2a 2 weeks ago 517.3 MB</code>
<code>nginx latest bbb75b846e7b 2 weeks ago 134.5 MB</code>
<code>dockerui</code><code>/dockerui</code> <code>latest 95c8b9dc91e0 4 weeks ago 6.13 MB</code>
<code>redis latest 34ca6ac180ad 4 weeks ago 151.2 MB</code>
<code>mongo latest ad74160b3443 4 weeks ago 317.4 MB</code>
<code>registry latest 07d93e41c370 4 weeks ago 422.8 MB</code>
<code>daocloud.io</code><code>/library/python</code> <code>latest a2db1214d015 4 weeks ago 689.1 MB</code>
<code>debian latest 5eb1402f0414 5 weeks ago 125.1 MB</code>
<code>daocloud.io</code><code>/library/ubuntu</code> <code>latest 8693db7e8a00 5 weeks ago 187.9 MB</code>
<code>centos latest 60e65a8e4030 9 weeks ago 196.6 MB</code>
<code>joedval</code><code>/stress</code> <code>latest 7eb627cb08a2 12 weeks ago 214.9 MB</code>
<code>doumadou</code><code>/centos6</code><code>.5_x86_64-base latest 5bcd27f3a345 7 months ago 429.8 MB</code>
<code>lemonbar</code><code>/centos6-ssh</code> <code>latest b78c71c001db 19 months ago 296.9 MB</code>
<code>blalor</code><code>/centos</code> <code>latest f01c1b138488 20 months ago 322.4 MB</code>
3、使用鏡像建構容器,并進行檢視
<code>[root@docker mysql]</code><code># docker run --name mysql123 -d -p 3306 wanlong/mysql</code>
<code>0eb98e3c3e60ce9082a92a2adb5c02a426e90dc1cb4cc6ddccbac40c549f5a44</code>
<code>[root@docker mysql]</code><code># docker ps -l</code>
<code>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</code>
<code>0eb98e3c3e60 wanlong</code><code>/mysql</code> <code>"</code><code>/usr/bin/mysqld_saf</code> <code>5 seconds ago Up 4 seconds 0.0.0.0:32768->3306</code><code>/tcp</code> <code>mysql123</code>
4、進入容器,并進行測試(端口号以及資料庫)
<code>[root@docker ~]</code><code># ./in.sh 0eb98e3c3e60</code>
<code>-</code><code>bash</code><code>: BASH_FUNC_module(): line 0: syntax error near unexpected token `)</code><code>'-bash: BASH_FUNC_module(): line 0: `BASH_FUNC_module() () { eval `/usr/bin/modulecmd bash $*`'</code><code>-</code><code>bash</code><code>: error importing </code><code>function</code> <code>definition </code><code>for</code> <code>`BASH_FUNC_module'</code>
<code>-</code><code>bash</code><code>-4.1</code><code># ls</code>
<code>bin boot dev etc home lib lib64 media mnt opt proc root sbin selinux srv sys tmp usr var-</code>
<code>bash</code><code>-4.1</code><code># netstat -tunlp</code>
<code>Active Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID</code><code>/Program</code> <code>name tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 91</code><code>/mysqld</code>
<code>-</code><code>bash</code><code>-4.1</code><code># mysql -u root</code>
<code>Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection </code><code>id</code> <code>is 1Server version: 5.1.73 Source distribution</code>
<code>Copyright (c) 2000, 2013, Oracle and</code><code>/or</code> <code>its affiliates. All rights reserved.</code>
<code>Oracle is a registered trademark of Oracle Corporation and</code><code>/or</code> <code>itsaffiliates. Other names may be trademarks of their respectiveowners.</code>
<code>Type </code><code>'help;'</code> <code>or </code><code>'\h'</code> <code>for</code> <code>help. Type </code><code>'\c'</code> <code>to </code><code>clear</code> <code>the current input statement.</code>
<code>mysql> show databases;</code>
<code>+--------------------+| Database |+--------------------+| information_schema || mysql || </code><code>test</code> <code>|+--------------------+3 rows </code><code>in</code> <code>set</code> <code>(0.00 sec)</code>
5、in.sh
<code>[root@docker ~]</code><code># cat in.sh </code>
<code>#!/bin/bash</code>
<code>CNAME=$1</code>
<code>CPID=$(docker inspect --</code><code>format</code> <code>"``.`State`.`Pid`"</code> <code>$CNAME)</code>
<code>nsenter --target </code><code>"$CPID"</code> <code>--</code><code>mount</code> <code>--uts --ipc --net --pid</code>
本文轉自 冰凍vs西瓜 51CTO部落格,原文連結:http://blog.51cto.com/molewan/1746463,如需轉載請自行聯系原作者