Docker极速构建
- Docker极速构建指,使用Docker的镜像快速构建开发环境、功能模块、应用服务。
- 本文会为你介绍一条命令,搭建出你想要的容器。
- 构建过程中,我们会把容器的挂载目录集中放在一起,全文中统一使用
/home/work
做为主目录。 - 主目录
/home/work
可以换成Linux命令中的变量$PWD
意为当前目录。 - 随着技术的发展,Docker越来越火爆,未来可能会进入容器的新纪元。
PHP 容器
-
docker run -d --name myphp \ -p 9000:9000 \ -v /home/work/nginx/www/:/usr/share/nginx/html \ php:7.2-fpm
启动PHP容器
-
使用该命令,如果不需要代理解析PHP脚本,可以去掉端口映射
-
PHP安装扩展需要进入容器内部,PHP扩展的安装:
php 安装 pdo_mysql 扩展
- 进入容器内部运行
docker-php-ext-install pdo_mysql
安装pdo_mysql扩展
php 安装 redis 扩展
- 从官方网站
https://pecl.php.net/package/redis
下载redis扩展包 tar -zxvf redis-5.0.1.tgz && mkdir -p /usr/src/php/ext
解压并创建目录mv redis-5.0.1 /usr/src/php/ext/redis
创建redis文件夹docker-php-ext-install redis
安装redis扩展
php 安装 mongodb 扩展
- 从官方网站
https://pecl.php.net/package/mongodb
下载mongodb扩展包 tar -zxvf mongodb-1.5.5.tgz && mkdir -p /usr/src/php/ext
解压并创建目录mv mongodb-1.5.5 /usr/src/php/ext/mongodb
创建mongodb文件夹docker-php-ext-install mongodb
安装mongodb扩展
- 进入容器内部运行
nginx 容器
-
启动nginx容器docker run -d \ --name mynginx \ -p 80:80 \ -v /home/work/nginx/www/:/usr/share/nginx/html \ -v /home/work/nginx/conf/:/etc/nginx/ \ nginx
mysql 容器
-
启动MySQL容器docker run -d \ --name mymysql \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=123456 \ mysql
redis 容器
-
启动redis容器docker run -d \ --name myredis \ -p 6379:6379 \ -v /home/work/nginx/redis/data:/data \ redis redis-server --appendonly yes
mongodb 容器
-
启动mongodb容器docker run -d \ --name mymongo \ -p 27017:27017 \ -v /home/work/nginx/mongo/data/db:/data/db \ mongo
phpmyadmin 容器
- 官方给出的命令
docker run -d --name myadmin -e PMA_HOST=dbhost -p 8080:80 phpmyadmin/phpmyadmin
-
docker run -d \ --name myadmin \ -e PMA_HOSTS=dbhost1,dbhost2,dbhost3 \ -e PMA_PORTS=port1,port2,port3 \ -p 8080:80 \ phpmyadmin/phpmyadmin
- 实际可以使用这种方式
docker run -d \ --name myadmin \ -e PMA_HOSTS=172.17.0.4,172.17.0.8,127.0.0.1 \ -e PMA_PORTS=3306,3306,13306 \ -p 9090:80 \ phpmyadmin/phpmyadmin
portainer 容器
-
启动portainer管理容器,用来管理dockerdocker run -d \ -p 19000:9000 \ --name myportainer \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /home/work/portainer/data:/data \ portainer/portainer
seafile 容器
- 启动seafile容器搭建私有文件云盘,官方给出来的命令:
docker run -d --name seafile \ -e SEAFILE_SERVER_LETSENCRYPT=true \ -e SEAFILE_SERVER_HOSTNAME=seafile.example.com \ -e SEAFILE_ADMIN_EMAIL=me@example.com \ -e SEAFILE_ADMIN_PASSWORD=a_very_secret_password \ -v /opt/seafile-data:/shared \ -p 80:80 -p 443:443 \ seafileltd/seafile:latest
- 自己可以根据需要调整端口
docker run -d --name myseafile \ -e SEAFILE_SERVER_LETSENCRYPT=true \ -e SEAFILE_SERVER_HOSTNAME=myseafile.com \ -e SEAFILE_ADMIN_EMAIL=admin@qq.com \ -e SEAFILE_ADMIN_PASSWORD=123456789 \ -v /home/work/seafile:/shared \ -p 18080:80 -p 443:443 \ seafileltd/seafile:latest
gitlab 容器
- 启动gitlab,官方个给出来的命令:
docker run --detach \ --hostname gitlab.example.com \ --publish 443:443 --publish 80:80 --publish 22:22 \ --name gitlab \ --restart always \ --volume /srv/gitlab/config:/etc/gitlab \ --volume /srv/gitlab/logs:/var/log/gitlab \ --volume /srv/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest
- 可以使用简化为:
docker run -d \ --hostname gitlab.example.com \ -p 443:443 -p 80:80 -p 22:22 \ --name fastgitlab \ --restart always \ -v /home/work/gitlab/config:/etc/gitlab \ -v /home/work/gitlab/logs:/var/log/gitlab \ -v /home/work/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest
构建数据管理
-
docker run -d -p 3000:3000 --name grafana grafana/grafana
构建MediaWiki
-
docker run -d -p 8080:80 --name mediawiki mediawiki
构建vnc
-
docker run -d -p 6080:80 --name myvnc -e VNC_PASSWORD=12345678 dorowu/ubuntu-desktop-lxde-vnc
构建docker私有云平台
-
docker run -d -p 5000:5000 --restart always --name registry registry:2