Ubuntu 是流行的 Linux 發(fā)行版,其自帶軟件版本往往較新一些。
該倉庫提供了 Ubuntu從12.04 ~ 14.10 各個版本的鏡像。
默認(rèn)會啟動一個最小化的 Ubuntu 環(huán)境。
$ sudo docker run --name some-ubuntu -i -t ubuntu
root@523c70904d54:/#
CentOS 是流行的 Linux 發(fā)行版,其軟件包大多跟 RedHat 系列保持一致。
該倉庫提供了 CentOS 從 5 ~ 7 各個版本的鏡像。
默認(rèn)會啟動一個最小化的 CentOS 環(huán)境。
$ sudo docker run --name some-centos -i -t centos bash
bash-4.2#
MongoDB 是開源的 NoSQL 數(shù)據(jù)庫實(shí)現(xiàn)。
該倉庫提供了 MongoDB 2.2 ~ 2.7 各個版本的鏡像。
默認(rèn)會在 27017 端口啟動數(shù)據(jù)庫。
$ sudo docker run --name some-mongo -d mongo
使用其他應(yīng)用連接到容器,可以用
$ 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:$MONGO_PORT_27017_TCP_PORT/test"'
MySQL 是開源的關(guān)系數(shù)據(jù)庫實(shí)現(xiàn)。
該倉庫提供了 MySQL 各個版本的鏡像,包括 5.6 系列、5.7 系列等。
默認(rèn)會在 3306 端口啟動數(shù)據(jù)庫。
$ sudo docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql
之后就可以使用其它應(yīng)用來連接到該容器。
$ 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" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
Nginx 是開源的高效的 Web 服務(wù)器實(shí)現(xiàn),支持 HTTP、HTTPS、SMTP、POP3、IMAP 等協(xié)議。 該倉庫提供了 Nginx 1.0 ~ 1.7 各個版本的鏡像。
下面的命令將作為一個靜態(tài)頁面服務(wù)器啟動。
$ sudo docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx
用戶也可以不使用這種映射方式,通過利用 Dockerfile 來直接將靜態(tài)頁面內(nèi)容放到鏡像中,內(nèi)容為
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的默認(rèn)配置文件路徑為 /etc/nginx/nginx.conf,可以通過映射它來使用本地的配置文件,例如
docker run --name some-nginx -v /some/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx
使用配置文件時,為了在容器中正常運(yùn)行,需要保持 daemon off;。
Node.js是基于 JavaScript 的可擴(kuò)展服務(wù)端和網(wǎng)絡(luò)軟件開發(fā)平臺。
該倉庫提供了 Node.js 0.8 ~ 0.11 各個版本的鏡像。
在項(xiàng)目中創(chuàng)建一個 Dockerfile。
FROM node:0.10-onbuild
# replace this with your application's default port
EXPOSE 8888
然后創(chuàng)建鏡像,并啟動容器
$ sudo docker build -t my-nodejs-app
$ sudo docker run -it --rm --name my-running-app my-nodejs-app
也可以直接運(yùn)行一個簡單容器。
$ sudo docker run -it --rm --name my-running-script -v "$(pwd)":/usr/src/myapp -w /usr/src/myapp node:0.10 node your-daemon-or-script.js
Redis 是開源的內(nèi)存 Key-Value 數(shù)據(jù)庫實(shí)現(xiàn)。
該倉庫提供了 Redis 2.6 ~ 2.8.9 各個版本的鏡像。
默認(rèn)會在 6379 端口啟動數(shù)據(jù)庫。
$ sudo docker run --name some-redis -d redis
另外還可以啟用 持久存儲。
$ sudo docker run --name some-redis -d redis redis-server --appendonly yes
默認(rèn)數(shù)據(jù)存儲位置在 VOLUME/data??梢允褂?--volumes-from some-volume-container 或 -v /docker/host/dir:/data 將數(shù)據(jù)存放到本地。
使用其他應(yīng)用連接到容器,可以用
$ 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_ADDR" -p "$REDIS_PORT_6379_TCP_PORT"'
WordPress 是開源的 Blog 和內(nèi)容管理系統(tǒng)框架,它基于 PhP 和 MySQL。
該倉庫提供了 WordPress 4.0 版本的鏡像。
啟動容器需要 MySQL 的支持,默認(rèn)端口為 80。
$ sudo docker run --name some-wordpress --link some-mysql:mysql -d wordpress
啟動 WordPress 容器時可以指定的一些環(huán)境參數(shù)包括
-e WORDPRESS_DB_USER=... 缺省為 “root”-e WORDPRESS_DB_PASSWORD=... 缺省為連接 mysql 容器的環(huán)境變量 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=... 缺省為隨機(jī) sha1 串