docker極速構建指,使用docker的映象快速構建開發環境、功能模組、應用服務。
本文會為你介紹一條命令,搭建出你想要的容器。
構建過程中,我們會把容器的掛載目錄集中放在一起,全文中統一使用/home/work
做為主目錄。
主目錄/home/work
可以換成linux命令中的變數$pwd
意為當前目錄。
隨著技術的發展,docker越來越火爆,未來可能會進入容器的新紀元。
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 擴充套件
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 擴充套件
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擴充套件
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
啟動nginx容器
docker run -d \
--name mymysql \
-p 3306:3306 \
-e mysql_root_password=123456 \
mysql
啟動mysql容器
docker run -d \
--name myredis \
-p 6379:6379 \
-v /home/work/nginx/redis/data:/data \
啟動redis容器
docker run -d \
--name mymongo \
-p 27017:27017 \
-v /home/work/nginx/mongo/data/db:/data/db \
mongo
啟動mongodb容器
官方給出的命令
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
docker 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
啟動portainer管理容器,用來管理docker
啟動seafile容器搭建私有檔案雲盤,官方給出來的命令:
docker run -d --name seafile \
-e seafile_server_letsencrypt=true \
-e seafile_server_hostname=seafile.example.com \
-e [email protected] \
-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 [email protected] \
-e seafile_admin_password=123456789 \
-v /home/work/seafile:/shared \
-p 18080:80 -p 443:443 \
seafileltd/seafile:latest
啟動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
docker run -d -p 8080:80 --name mediawiki mediawiki
docker run -d -p 6080:80 --name myvnc -e vnc_password=12345678 dorowu/ubuntu-desktop-lxde-vnc
docker run -d -p 5000:5000 --restart always --name registry registry:2
docker構建映象
做映象就是構建映象!提交容器更改,生成新的映象!docker commit 容器名 新映象的名字 tag 例如 將web2容器提交為乙個新的映象,新映象的名字為nginx 1.1 在docker中映象的儲存方式是分層儲存的!每個映象都會有不同層數!映象的層數只能增加不能減少!映象是唯讀的!裡面的記憶...
docker構建映象
建立docker映象有兩種方法。1。docker commit 這種不推薦,就不介紹了。2。用docker build命令和dockerfile檔案 下面構建乙個nginx小應用。建立資料夾 mkdir static web 進入這個資料夾 cd static web 建立dockerfile檔案 ...
Docker 構建映象
docker 構建映象 1 首先,在專案的根目錄下,新建乙個文字檔案.dockerignore,寫入下面的內容。git node modules npm debug.log 2 然後在專案的根目錄下,新建乙個文字檔案 dockerfile,寫入下面的內容。run npm install regist...