本篇內(nèi)容介紹了“Docker的常規(guī)使用方法是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比西林網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式西林網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋西林地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。
本節(jié)我們以運(yùn)行
Gitlab
實(shí)例為例,進(jìn)一步介紹Docker的常規(guī)使用。
... root@ubuntu:~# docker run --name gitlab-cache -d redis a2c183f16cee0aa30eca8f27875d3770ac1291fc22b218d4b5e673ce604074c8
root@ubuntu:~# mkdir -p /opt/test/gitlab/db/ <1> root@ubuntu:~# docker pull mysql... root@ubuntu:~# docker run --name gitlab-db -e MYSQL_ROOT_PASSWORD=123456 -d -p 3307:3306 -v /opt/test/gitlab/db:/var/lib/mysql mysql:5.7 7c8110b8151e2ddbc67d2bb1d96a9cc24ef68546a885d065e78bd274775ec7f7
<1> | 創(chuàng)建數(shù)據(jù)庫目錄映射 |
root@ubuntu:~# docker exec -it gitlab-db /bin/bash root@7c8110b8151e:/# mysql -uroot -p123456 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.7.9 MySQL Community Server (GPL) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> CREATE USER 'gitlab'@'%.%.%.%' IDENTIFIED BY 'password'; Query OK, 0 rows affected (0.00 sec) mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON `gitlabhq_production`.* TO 'gitlab'@'%.%.%.%'; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye root@7c8110b8151e:/# exit exit
exec 表示進(jìn)入一個(gè)運(yùn)行中的容器 |
MySQL中執(zhí)行的語句見: https://hub.docker.com/r/sameersbn/gitlab/#external-mysql-server |
root@ubuntu:~# mkdir -p /opt/test/gitlab/data <1> root@ubuntu:~# docker pull sameersbn/gitlab
<1> | 創(chuàng)建GIT數(shù)據(jù)目錄映射 |
root@ubuntu:~# docker run --name=gitlab -d \ -e GITLAB_PORT=10080 \ <1> -e GITLAB_SSH_PORT=10022 \ <2> -e GITLAB_HOST=inner.ecfront.com \ <3> -e DB_TYPE=mysql \ <4> -e DB_HOST=192.168.4.99 \ -e DB_PORT=3307 \ -e DB_NAME=gitlabhq_production \ -e DB_USER=gitlab \ -e DB_PASS=password \ -e GITLAB_EMAIL=git@ecfront.com \ <5> -e SMTP_ENABLED=true \ -e SMTP_DOMAIN=ecfront.com \ -e SMTP_HOST=smtp.exmail.qq.com \ -e SMTP_PORT=25 \ -e SMTP_USER=git@ecfront.com \ -e SMTP_PASS=xxx \ -e SMTP_AUTHENTICATION=login \ -e NGINX_MAX_UPLOAD_SIZE=512m \ <6> -e GITLAB_BACKUPS=monthly \ <7> -p 10022:22 \ <8> -p 10080:80 \ <9> -v /opt/test/gitlab/data:/home/git/data \ <10> --link gitlab-cache:redisio \ <11> --DNS=192.168.4.99 \ <12> sameersbn/gitlab
<1> HTTP服務(wù)端口
<2> SSH請求端口
<3> 服務(wù)域名
<4> 數(shù)據(jù)庫連接信息
<5> Email信息
<6> 解決`RPC failed; result=22, HTTP code = 413`問題,見 http://stackoverflow.com/questions/7489813/github-push-error-rpc-failed-result-22-http-code-413
<7> 備份策略,每天
<8> SSH請求端口映射
<9> HTTP請求端口映射
<10> GIT數(shù)據(jù)目錄映射
<11> 連接Reids容器,實(shí)現(xiàn)緩存
<12> 配置DNS
如果使用MySQL數(shù)據(jù)庫一定要加上-e DB_TYPE=mysql 否則這個(gè)容器會(huì)以默認(rèn)的Postgre類型去連接導(dǎo)致無法啟動(dòng) |
--dns 用于指定容器的DNS,我們可以指定一個(gè)公共DNS以實(shí)現(xiàn)不同容器互PING |
Docker默認(rèn)情況下容器間是不能互訪的,要實(shí)現(xiàn)交互主要有兩種途徑,一是用--link 這也是Docker推薦的做法,它會(huì)在容器中建立被Link容器的Host記錄實(shí)現(xiàn)單向訪問,另一種是開放服務(wù)實(shí)現(xiàn)調(diào)用,對于上述案例,Redis使用的是Link方式,MySQL使用是開放服務(wù)方式。 |
訪問一下:http://192.168.4.99:10080
(192.168.4.99是我宿主機(jī)的IP),等等,為什么訪問不了?
在出問題時(shí)我們首先想到的是 去看看日志 ,Docker容器運(yùn)行日志的查看如下:
root@ubuntu:~# docker logs gitlab ERROR: Please configure the GITLAB_SECRETS_DB_KEY_BASE parameter. Cannot continue. Aborting...
提示是需要GITLAB_SECRETS_DB_KEY_BASE
變量,查看官方說明:
Note: Since GitLab
8.0.0
you need to provide theGITLAB_SECRETS_DB_KEY_BASE
parameter while starting the image.Tip: You can generate a random string using
pwgen -Bsv1 64
and assign it as the value ofGITLAB_SECRETS_DB_KEY_BASE
.
— https://hub.docker.com/r/sameersbn/gitlab/
好的,我們用pwgen -Bsv1 64
生成一個(gè)密鑰
root@ubuntu:~# pwgen -Bsv1 64 7hpTqCXgf4tVbnFmdC7PNn9n4hWmCnvF479fsJtcdTkhmVfWfzpwTJ4sNRzNkkXf
把GITLAB_SECRETS_DB_KEY_BASE
加上重新運(yùn)行
root@ubuntu:~# docker rm -f gitlab root@ubuntu:~# docker run --name=gitlab -d \ -e GITLAB_PORT=10080 \ -e GITLAB_SSH_PORT=10022 \ -e GITLAB_HOST=inner.ecfront.com \ -e DB_TYPE=mysql \ -e DB_HOST=192.168.4.99 \ -e DB_PORT=3307 \ -e DB_NAME=gitlabhq_production \ -e DB_USER=gitlab \ -e DB_PASS=password \ -e GITLAB_SECRETS_DB_KEY_BASE=7hpTqCXgf4tVbnFmdC7PNn9n4hWmCnvF479fsJtcdTkhmVfWfzpwTJ4sNRzNkkXf \ -e GITLAB_EMAIL=git@ecfront.com \ -e SMTP_ENABLED=true \ -e SMTP_DOMAIN=ecfront.com \ -e SMTP_HOST=smtp.exmail.qq.com \ -e SMTP_PORT=25 \ -e SMTP_USER=git@ecfront.com \ -e SMTP_PASS=xxx \ -e SMTP_AUTHENTICATION=login \ -e NGINX_MAX_UPLOAD_SIZE=512m \ -e GITLAB_BACKUPS=monthly \ -p 10022:22 \ -p 10080:80 \ -v /opt/test/gitlab/data:/home/git/data \ --link gitlab-cache:redisio \ --dns=192.168.4.99 \ sameersbn/gitlab
好了,第一次要做的事情比較多,過一會(huì)就可以打開頁面了
用戶名:root 密碼:5iveL!fe |
“Docker的常規(guī)使用方法是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
名稱欄目:Docker的常規(guī)使用方法是什么
標(biāo)題網(wǎng)址:http://vcdvsql.cn/article30/jhjhso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、域名注冊、靜態(tài)網(wǎng)站、云服務(wù)器、網(wǎng)站導(dǎo)航、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)