docker学习(七)常见仓库介绍
将介绍常见的一些仓库和镜像的功能,使用方法和生成它们的 Dockerfile 等。包括 Ubuntu、
CentOS、MySQL、MongoDB、Redis、Nginx、Wordpress、Node.js 等。
1.Ubuntu
https://www.runoob.com/docker/docker-install-ubuntu.html
基本信息
Ubuntu 是流行的 Linux 发行版,其自带软件版本往往较新一些。 该仓库提供了 Ubuntu从12.04 ~ 14.10 各个版本的镜像。
使用方法
默认会启动一个最小化的 Ubuntu 环境。
$ sudo docker run --name some-ubuntu -i -t ubuntu
root@523c70904d54:/#
2.CentOS
https://www.runoob.com/docker/docker-install-centos.html
基本信息
CentOS 是流行的 Linux 发行版,其软件包大多跟 RedHat 系列保持一致。 该仓库提供了 CentOS 从 5 ~ 7各个版本的镜像。
使用方法
默认会启动一个最小化的 CentOS 环境。
$ sudo docker run --name some-centos -i -t centos bash
bash-4.2#
3.MySQL
基本信息
MySQL 是开源的关系数据库实现。 该仓库提供了 MySQL 各个版本的镜像,包括 5.6 系列、5.7 系列等。
使用方法
默认会在 3306 端口启动数据库。
$ sudo docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql
之后就可以使用其它应用来连接到该容器。
$ sudo docker run --name some-app --link some-mysql:mysql -d application-that-uses-mysql
或者通过 mysql 。
$ sudo docker run -it --link some-mysql:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR"
4.MongoDB
基本信息
MongoDB 是开源的 NoSQL 数据库实现。 该仓库提供了 MongoDB 2.2 ~ 2.7 各个版本的镜像。
使用方法
默认会在 27017 端口启动数据库。
$ sudo docker run --name some-mongo -d mongo
使用其他应用连接到容器,可以用
$ sudo docker run --name some-app --link some-mongo:mongo -d application-that-uses-mongo
或者通过 mongo
$ sudo docker run -it --link some-mongo:mongo --rm mongo sh -c 'exec mongo "$MONGO_PORT_27017_TCP_ADDR:$
5.Redis
基本信息
Redis 是开源的内存 Key-Value 数据库实现。 该仓库提供了 Redis 2.6 ~ 2.8.9 各个版本的镜像。
使用方法
默认会在 6379 端口启动数据库。
$ sudo docker run --name some-redis -d redis
另外还可以启用 持久存储。
$ sudo docker run --name some-redis -d redis redis-server --appendonly yes
默认数据存储位置在 VOLUME/data 。可以使用 --volumes-from some-volume-container 或 -v
/docker/host/dir:/data 将数据存放到本地。
使用其他应用连接到容器,可以用
$ sudo docker run --name some-app --link some-redis:redis -d application-that-uses-redis
或者通过 redis-cli
$ sudo docker run -it --link some-redis:redis --rm redis sh -c 'exec redis-cli -h "$REDIS_PORT_6379_TCP_
6.Nginx
基本信息
Nginx 是开源的高效的 Web 服务器实现,支持 HTTP、HTTPS、SMTP、POP3、IMAP 等协议。 该仓库提供了 Nginx 1.0 ~ 1.7 各个版本的镜像。
使用方法
下面的命令将作为一个静态页面服务器启动。
$ sudo docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx
用户也可以不使用这种映射方式,通过利用 Dockerfile 来直接将静态页面内容放到镜像中,内容为
FROM nginx
COPY static-html-directory /usr/share/nginx/html
之后生成新的镜像,并启动一个容器。
$ sudo docker build -t some-content-nginx .
$ sudo docker run --name some-nginx -d some-content-nginx
开放端口,并映射到本地的 8080 端口。
sudo docker run --name some-nginx -d -p 8080:80 some-content-nginx
Nginx的默认配置文件路径为 /etc/nginx/nginx.conf ,可以通过映射它来使用本地的配置文件,例如
docker run --name some-nginx -v /some/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx
使用配置文件时,为了在容器中正常运行,需要保持 daemon off;
7.WordPress
基本信息
WordPress 是开源的 Blog 和内容管理系统框架,它基于 PhP 和 MySQL。 该仓库提供了 WordPress 4.0版本的镜像。
使用方法
启动容器需要 MySQL 的支持,默认端口为 80 。
$ sudo docker run --name some-wordpress --link some-mysql:mysql -d wordpress
启动 WordPress 容器时可以指定的一些环境参数包括
-e WORDPRESS_DB_USER=... 缺省为 “root”
-e WORDPRESS_DB_PASSWORD=... 缺省为连接 mysql 容器的环境变量 MYSQL_ROOT_PASSWORD 的值
-e WORDPRESS_DB_NAME=... 缺省为 “wordpress”
-e WORDPRESS_AUTH_KEY=... , -e WORDPRESS_SECURE_AUTH_KEY=... , -e
WORDPRESS_LOGGED_IN_KEY=... , -e WORDPRESS_NONCE_KEY=... , -e WORDPRESS_AUTH_SALT=... ,
-e WORDPRESS_SECURE_AUTH_SALT=... , -e WORDPRESS_LOGGED_IN_SALT=... , -e
WORDPRESS_NONCE_SALT=... 缺省为随机 sha1 串
8.Node.js
基本信息
Node.js是基于 JavaScript 的可扩展服务端和网络软件开发平台。 该仓库提供了 Node.js 0.8 ~ 0.11 各个版本的镜像。
使用方法
在项目中创建一个 Dockerfile。
FROM node:0.10-onbuild
# replace this with your application's default port
EXPOSE 8888
然后创建镜像,并启动容器
$ sudo docker build -t my-nodejs-app
$ sudo docker run -it --rm --name my-running-app my-nodejs-app
也可以直接运行一个简单容器。
$ sudo docker run -it --rm --name my-running-script -v "$(pwd)":/usr/src/myapp -w /usr/src/myapp node:
详细操作 具体的以nginx为例:
https://www.cnblogs.com/kaixinyufeng/p/9693623.html
Docker 主站点: https://www.docker.io
Docker 注册中心API: http://docs.docker.com/reference/api/registry_api/
Docker Hub API: http://docs.docker.com/reference/api/docker-io_api/
Docker 远端应用API: http://docs.docker.com/reference/api/docker_remote_api/
Dockerfile 参考:https://docs.docker.com/reference/builder/
Dockerfile 最佳实践:https://docs.docker.com/articles/dockerfile_best-practices/
docker学习(七)常见仓库介绍的更多相关文章
- Docker学习笔记五 仓库
本文地址:https://www.cnblogs.com/veinyin/p/10452224.html 以下均为命令行下操作 登录登出 docker login // 登录 docker logo ...
- Docker学习—Compose
前言 前面<Docker学习-DockerFile>文中介绍了dockerfile相关的语法,及使用方式:接下来了解docker三剑客之一的 Compose:接下来详细学习. 一.dock ...
- Docker学习—Machine
前言 前面<Docker学习-Compose>文中介绍了Compose的使用方式:接下来继续了解docker三剑客之一的 Machine: 一.Docker Machine简介 1.什么是 ...
- Docker学习笔记之常见 Dockerfile 使用技巧
0x00 概述 在掌握 Dockerfile 的基本使用方法后,我们再来了解一些在开发中使用 Dockerfile 的技巧.这一小节的展现方式与之前的略有不同,其主要来自阅读收集和我自身在使用中的最佳 ...
- Docker学习(五): 仓库与数据管理
特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! =============系列文章============= 1 ...
- Docker学习总结之Run命令介绍
Docker学习总结之Run命令介绍 本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢! 在使用Docker时,执行最多的命令某 ...
- Docker学习笔记(3) — docker仓库的镜像怎么删除
docker越来越炙手可热,如果你的团队已经准备开始使用docker,那么私有仓库是必不可少的东西,首先是可以帮助你加快从服务器pull镜像的速度,其次也可以帮助你存放私有的镜像,本文主要为大家介绍如 ...
- Docker学习(三): Dockerfile指令介绍
特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! =============系列文章============= 1 ...
- DOCKER学习_016:Docker镜像仓库和HARBOR的简单安装和管理
一 镜像仓库介绍 1.1 简介 镜像仓库用于存放 Docker镜像 Docker registry提供镜像仓库服务 一个 Docker registry可以包含多个镜像仓库 仓库分为公共镜像仓库与私有 ...
随机推荐
- java junit4-JUnit测试报 No socket available 错误
问题描述 JUnit测试报 No socket available 错误 Eclipse进行JUnit测试时,总弹出 No socket available 窗口,导致测试不能进行. 解决方案一: 打 ...
- [转帖]TPC-C解析系列04_TPC-C基准测试之数据库事务引擎的挑战
TPC-C解析系列04_TPC-C基准测试之数据库事务引擎的挑战 http://www.itpub.net/2019/10/08/3331/ OceanBase这次TPC-C测试与榜单上Oracl ...
- tp5 关键字模糊查询 日期查询 小于大于某范围等查询的优点
挺不错,用熟了这tp5封装的很方便. 类似上边一个查询多个操作,基本在model 一个方法搞定代码也不用很多, 首先要学会用scope 网上搜tp scope 有几个例子可以借鉴 model 内添加 ...
- 【坑】前端使用ajax异步请求以后,springMvc拦截器跳转页面无效
文章目录 前言 `$.ajaxSetup( )` 后记 前言 本文着重解决前后端分离开发的页面调整问题. 笔者,在做一个需求,需要对访问网站,但是没有登录的用户进行拦截,将他们重定向到首页. 很简单的 ...
- 关于JavaScript 基础总结
Dom:document object model 即文档对象模型 Bom: browser object model 即浏览器对象模型 文档对象模型即与文本密切相关,比如document.query ...
- create-react-app中的一些功能配置
1. 根路径别名@ 1. npm run eject调出配置文件.找到webpack.config.js,搜索到,alias,在下面添加一行键值对'@':paths.appSrc, alias: { ...
- 对称加密,非对称加密,数字签名,https
对称加密和非对称加密 对称加密 概念:加密秘钥和解密秘钥使用相同的秘钥(即加密和解密都必须使用同一个秘钥) 特点:一对一的双向保密通信(每一方既可用该秘钥加密,也可用该秘钥解密,非对称加密是多对一的单 ...
- windows下使用 fdfs_client 上传文件(转)
https://www.cnblogs.com/kindleheart/p/10134502.html 注意:client = Fdfs_client(r"绝对路径"),一定要是绝 ...
- 区块链公链分片技术(sharding)方案思维导图
- POJ1979(Red and Black)--FloodFill
题目在这里 题目意思是这样的,一个人起始位置在 '@' 处,他在途中能到达的地方为 ' . ' 而 '#' 是障碍物,他不能到达. 问途中他所有能到达的 '.'的数量是多少 ? ...