常用Docker镜像的使用

DockerUI

单机版的Docker镜像、容器管理工具

docker pull abh1nav/dockerui:latest
 docker run -d -p 9000:9000 -v /var/run/docker.sock:/docker.sock --name dockerui 6e4d05915b2a -e="/docker.sock"

登陆:http://localhost:9000/

php-admin

  • 下载
docker pull registry.cn-hangzhou.aliyuncs.com/sherry/php-admin:4.8.2
  • 运行

MySQL

下载

docker pull registry.cn-hangzhou.aliyuncs.com/sherry/mysql:5.7

启动

docker run -d --name mysql -v /Users/zhangliuning/Volumes/mysql/data:/var/lib/mysql -p 3306:3306 -e lower-case-table-names=1 -e MYSQL_ROOT_PASSWORD=123456 -e default-time-zone=+8:00 -e ollation-server=utf8_general_ci -e character-set-server=utf8 -e innodb-buffer-pool-size=20M registry.cn-hangzhou.aliyuncs.com/sherry/mysql:5.7 

ZooKeeper

下载

docker pull zookeeper:3.5

启动

docker run --name zookeeper -d -p 2181:2181 zookeeper:3.5

Redis

从dashboard下载安装Docker镜像

docker pull registry.cn-hangzhou.aliyuncs.com/sherry/redis:3.2.9

直接使用Docker的Redis镜像

docker run --name redis -d -p 6379:6379  registry.cn-hangzhou.aliyuncs.com/sherry/redis:3.2.9 --requirepass "mypassword"

初期,为了演示方便,直接进入容器进行访问,对于Redis的高级配置,后续详细说明

docker exec -it 1c8a9884a7d2 bash

这个镜像包含EXPOSE 6379 (Redis默认端口),所以可以通过link容器的方式访问Redis

RabbitMQ

下载

docker pull daocloud.io/library/rabbitmq:3.5.1-management

启动

docker run -d -p5671:5671 -p5672:5672 -p15672:15672 -p15671:15671 -p25672:25672 --name rabbitMq daocloud.io/library/rabbitmq:3.5.1-management

ActiveMQ

docker pull registry.cn-hangzhou.aliyuncs.com/sherry/activemq:5.13.0

docker run -d -p 61616:61616 -p 8161:8161 registry.cn-hangzhou.aliyuncs.com/sherry/activemq:5.13.0

http://localhost:8161,打开管理界面,admin/admin

MongoDB

  • 安装
docker pull registry.cn-hangzhou.aliyuncs.com/sherry/mongodb:4.0.2
  • 启动
docker run --name mongo -d -p 27017:27017 e3985c6fb3c8

启动一个 mongo 实例

$ docker run --name some-mongo -d daocloud.io/mongo

由于该镜像的 Dockerfile 中包含了 EXPOSE 27017(mongo 默认端口),所以可以通过 link 两个容器来访问它(就像下面的示例)。
在应用中连接该实例

$ docker run --name some-app --link some-mongo:mongo -d application-that-uses-mongo

使用 mongo 命令

$ docker run -it --link some-mongo:mongo --rm daocloud.io/mongo sh -c 'exec mongo "$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/test"'

相关配置
你可以查阅官方文档来了解如何配置 MongoDB 进行复制或分片操作。
你也可以简单地设置 --storageEngine 参数来指定你需要的储存引擎(比如 MongoDB 3.0 中的 WiredTiger)。如果需要从旧版本升级的话,请确保你已熟悉此文档。

$ docker run --name some-mongo -d daocloud.io/mongo --storageEngine wiredTiger

储存数据的位置
摘要:下面介绍了多种储存 Docker 容器中数据的方式,我们鼓励 mongo 镜像用户熟悉下面各项技术:
• 使用 Docker 自带的 Volume 机制将数据库文件写入宿主机的磁盘。这是默认的方式,对用户来讲简单且透明。缺点是宿主机上的工具或应用可能难以定位这些文件。
• 在宿主机上创建一个数据目录(在容器外部)并把他挂载至容器内部。此时数据库文件被放置在宿主机上一个已知的目录里,那样容器外部的应用和工具就可以方便地访问这些文件。缺点是用户需要确保这些目录存在,且宿主机上正确配置了权限设置。
警告:由于 MongoDB 使用了内存映射机制,因此当你使用 vboxsf 时会出现错误,这是一个已知的 bug (vbox bug)。
阅读 Docker 文档能快速了解不同的储存选项,并且有很多博客或论坛讨论并给出了这方面的建议。我们会在下面简单地演示一下:

	1. 在宿主机上创建一个数据目录,例:/my/own/datadir。
	2. 使用下面的命令启动 mongo 容器:
$ docker run --name some-mongo -v /my/own/datadir:/data/db -d daocloud.io/mongo:tag

我们通过 -v /my/own/datadir:/data/db 参数从宿主机挂载 /my/own/datadir 目录至容器内作为 /data/db 目录,那样 MongoDB 就会默认将数据文件写入这个目录中。
注意 SELinux 用户可能会遇到一个问题,目前的解决方法是为你的数据目录指定相关的 SELinux 策略配置,那样容器才可以访问它:

$ chcon -Rt svirt_sandbox_file_t /my/own/datadir

Nginx

docker pull daocloud.io/library/nginx:1.7.10

运行
/some/content为宿主机目录,保存着需要托管的网页

docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d daocloud.io/nginx

8080表示主机的端口,80表示容器的端口, 
这样子,访问主机的8080就可以通过桥接访问nginx容器的80端口了
另外一种比上面绑定 volume 更推荐的做法是用Dockerfile生成包含网页内容的新镜像,如下所示:

	1. FROM daocloud.io/nginx
	2. COPY static-html-directory /usr/share/nginx/html
把上面的Dockerfile和您的网页内容(static-html-directory)放在同一目录下,然后运行命令生成新镜像: 
docker build -t some-content-nginx . 
最后启动容器: 
docker run --name some-nginx -d -p 8080:80 some-content-nginx
设置Nginx配置
docker run --name some-nginx -v /some/nginx.conf:/etc/nginx/nginx.conf:ro -d daocloud.io/nginx 
为了确保 Nginx 容器能够持续运行,请务必在您自定义的 Nginx 配置文件中包含deamon off配置项。

猜你喜欢

转载自blog.csdn.net/m0_37208669/article/details/84789605