10. 常用Docker镜像的使用

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:/# 

然后打开浏览器:


图片.png

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下的别名

图片.png

图片.png

在上面写一篇博客
然后关闭页面,并执行

yinbodotcc@yay:~$ docker stop wordpress

接着重启这个容器:

yinbodotcc@yay:~$ docker start wordpress

然后再打开页面,发现数据还在,这个原因是stop不会清空容器,rm才会清除:


图片.png

另外,我们可以制定数据存储在哪个表中,使用非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

图片.png

删除容器后重新创建容器:

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:~$ 

打开网页后发现数据根本没有丢失:


图片.png

这在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

然后启动浏览器(省去一万字)

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 6,404评论 0赞 10
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,907评论 1赞 32
  • 小时候,家里都比较穷,冬天又很冷,手脚冻的发麻,必须通过活动,让身体热起来;而踢毽子是其中的一项暖身的运动,因为花...
    正心007阅读 836评论 0赞 0
  • 我喜欢春天,轻风的微拂 我喜欢夏天,阳光的灿烂 我喜欢秋天,落叶的纷飞 我喜欢冬天,雪花的飘零 我喜欢,一年的四季...
    李小黎阅读 335评论 0赞 2
  • Unity中一切皆对象,对象皆组件 对象失效,对象的组件当然就失效了,但组件失效,对象只是少了一个组件而已。。。 ...
    萧非子阅读 1,057评论 0赞 50

友情链接更多精彩内容