久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Docker的常規使用方法是什么

177次閱讀
沒有評論

共計 4657 個字符,預計需要花費 12 分鐘才能閱讀完成。

本篇內容介紹了“Docker 的常規使用方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

7. 進階

本節我們以運行 Gitlab 實例為例,進一步介紹 Docker 的常規使用。

root@ubuntu:~# docker pull redis   7.1. 獲取 Redis 鏡像并運行

... 
root@ubuntu:~# docker run --name gitlab-cache -d redis 
a2c183f16cee0aa30eca8f27875d3770ac1291fc22b218d4b5e673ce604074c8

7.2. 獲取 MySQL 鏡像并運行

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 創建數據庫目錄映射 7.3. 創建相應的數據庫及權限

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
root@7c8110b8151e:/# exit
exit

exec  表示進入一個運行中的容器
MySQL 中執行的語句見: https://hub.docker.com/r/sameersbn/gitlab/#external-mysql-server7.4. 獲取 Gitlab 鏡像

root@ubuntu:~# mkdir -p /opt/test/gitlab/data  1  
root@ubuntu:~# docker pull sameersbn/gitlab

1 創建 GIT 數據目錄映射 7.5. 運行 Gitlab 鏡像

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 服務端口
2 SSH 請求端口
3 服務域名
4 數據庫連接信息
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 數據目錄映射
11 連接 Reids 容器,實現緩存
12 配置 DNS

如果使用 MySQL 數據庫一定要加上 -e DB_TYPE=mysql 否則這個容器會以默認的 Postgre 類型去連接導致無法啟動
–dns  用于指定容器的 DNS,我們可以指定一個公共 DNS 以實現不同容器互 PING
Docker 默認情況下容器間是不能互訪的,要實現交互主要有兩種途徑,一是用 –link 這也是 Docker 推薦的做法,它會在容器中建立被 Link 容器的 Host 記錄實現單向訪問,另一種是開放服務實現調用,對于上述案例,Redis 使用的是 Link 方式,MySQL 使用是開放服務方式。

訪問一下:http://192.168.4.99:10080 (192.168.4.99 是我宿主機的 IP),等等,為什么訪問不了?

7.6. 查看運行日志

在出問題時我們首先想到的是   去看看日志  ,Docker 容器運行日志的查看如下:

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 the GITLAB_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 生成一個密鑰

root@ubuntu:~# pwgen -Bsv1 64 
7hpTqCXgf4tVbnFmdC7PNn9n4hWmCnvF479fsJtcdTkhmVfWfzpwTJ4sNRzNkkXf

把 GITLAB_SECRETS_DB_KEY_BASE 加上重新運行

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

7.7. 完成

好了,第一次要做的事情比較多,過一會就可以打開頁面了

用戶名:root 密碼:5iveL!fe

“Docker 的常規使用方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計4657字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 交口县| 乃东县| 延津县| 南乐县| 裕民县| 乌恰县| 罗山县| 和龙市| 昌黎县| 永登县| 平潭县| 望谟县| 法库县| 济宁市| 朝阳区| 怀宁县| 资兴市| 深水埗区| 秭归县| 同心县| 秀山| 辽源市| 中方县| 泗洪县| 盐城市| 南京市| 侯马市| 忻州市| 天祝| 内江市| 独山县| 来凤县| 鄄城县| 金溪县| 安徽省| 满洲里市| 宜良县| 汾西县| 梧州市| 河津市| 行唐县|