1. Python
1.1 使用Python运行一个简单的HTTP server
使用Python运行一个简单的HTTP server,访问时会展示出根目录
yinbodotcc@yay:~$ docker run -d -p 1234:1234 python:2.7 python -m SimpleHTTPServer 1234
查看python容器的可用ip地址
yinbodotcc@yay:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd59e08afb06 python:2.7 "python -m SimpleHTT…" 2 minutes ago Up 2 minutes 0.0.0.0:1234->1234/tcp hopeful_nash
51b54b87ba23 jenkins "/bin/tini -- /usr/l…" 5 hours ago Up 14 minutes 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins_master
yinbodotcc@yay:~$ docker exec -it hopeful_nash /bin/bash
root@cd59e08afb06:/# ip route
default via 172.17.0.1 dev eth0
172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.0.3
root@cd59e08afb06:/#
然后打开浏览器:

2. WordPress
2.1使用两个Linked容器去运行一个WordPress Blog
2.2.1 数据不存储在本地方式
需要两个容器,一个运行Wordress,一个运行MySql。特别注意5.7以后的MySql实验失败,我这里用的是5.5:
yinbodotcc@yay:~$ docker pull wordpress:latest
yinbodotcc@yay:~$ docker pull mysql:5.5
yinbodotcc@yay:~$ sudo docker run --name mysql_db -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.5
yinbodotcc@yay:~$ docker run -itd --name wordpress -e WORDPRESS_DB_PASSWORD=123456 -p 8086:80 --link mysql_db:mysql -d wordpress#--link mysql_db:mysql里面的mysql是mysql_db容器在link下的别名


在上面写一篇博客
然后关闭页面,并执行
yinbodotcc@yay:~$ docker stop wordpress
接着重启这个容器:
yinbodotcc@yay:~$ docker start wordpress
然后再打开页面,发现数据还在,这个原因是stop不会清空容器,rm才会清除:

另外,我们可以制定数据存储在哪个表中,使用非root账号:
docker run --name mysqlwp -e MYSQL_ROOT_PASSWORD=wordpressdocker
-e MYSQL_DATABASE=wordpress
-e MYSQL_USER=wordpress
-e MYSQL_PASSWORD=wordpresspwd
-d mysql:5.5
docker run --name wordpress --link mysqlwp:mysql -p 80:80
-e WORDPRESS_DB_NAME=wordpress
-e WORDPRESS_DB_USER=wordpress
-e WORDPRESS_DB_PASSWORD=wordpresspwd
-d wordpress
2.2.2 数据存储在本地
yinbodotcc@yay:~$ docker run --name mysql -d -p 3306:3306 -v /ZZZZZ/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="123456" mysql:5.5
d07222692479a9f6aedc7476bd4c1b8044418acf23b954b4f00f6447e5e7da47
yinbodotcc@yay:~$ docker run --name wordpress -d -p 80:80 --link mysql:mysql -v /XXXXX/wordpress:/var/www/html wordpress
c16dc252d364b0c0f0c3e4603fb946f4a774b82f4f9817b6aa11ad283649ecc3
多说一句,你去查看MySql的Dockerfile,你会发现里面有VOLUME /var/lib/mysql,只有这里声明后,你在外面才能使用诸如-v /ZZZZZ/mysql/data:/var/lib/mysql

删除容器后重新创建容器:
yinbodotcc@yay:~$ docker stop wordpress
wordpress
yinbodotcc@yay:~$ docker rm wordpress
wordpress
yinbodotcc@yay:~$ docker stop mysql
mysql
yinbodotcc@yay:~$ docker rm mysql
mysql
yinbodotcc@yay:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
51b54b87ba23 jenkins "/bin/tini -- /usr/l…" 21 hours ago Exited (137) 3 hours ago jenkins_master
yinbodotcc@yay:~$ docker run --name mysql -d -p 3306:3306 -v /ZZZZZ/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="123456" mysql:5.5
ad89468e7546009e137d21e9f5bd97f4084ef7045856f04979ec04d53a8fe015
yinbodotcc@yay:~$ docker run --name wordpress -d -p 80:80 --link mysql:mysql -v /XXXXX/wordpress:/var/www/html wordpress
ca3a8ee8f743f3e0afe5c0761d7e3c3c68e13692a1af4c828ba9a9ea0ddc1294
yinbodotcc@yay:~$
打开网页后发现数据根本没有丢失:

这在wordpress例子中讲过了,不再重述
2.2使用host上已安装MySql(没有实验成功)
同样,我们可以在本机安装mysql5.5或者mysql5.6
只有一个容器
docker run -itd --name wordpress -e WORDPRESS_DB_HOST=172.17.0.1:3306 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=Java1....... -p 81:80 -d wordpress
然后启动浏览器(省去一万字)