<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 11. 部署 owncloud 與 phpMyAdmin #### 1. 介紹 上一篇:[docker部署深入理解(十)](https://www.rails365.net/articles/docker-bu-shu-shen-ru-li-jie-shi) - [owncloud主頁](https://github.com/owncloud/core) - [owncloud客戶端](https://owncloud.org/install/#install-clients) - [owncoud docker文檔](https://github.com/docker-library/docs/tree/master/owncloud) - [phpMyAdmin docker鏡像](https://github.com/phpmyadmin/docker) - [docker-compose.yml 2寫法](https://docs.docker.com/compose/compose-file/compose-file-v2/) [owncloud](https://github.com/owncloud/core)是一款放文件和圖片等數據的應用,它有點類似于網盤這樣的東西,以后再也不用擔心哪個網盤被封殺了,自己搭建一個,上傳和下載速度又快,資料也安全,我最喜歡的是它有兩個特點,第一個是有插件,比如說,我安裝了一個可以寫筆記的插件,還有另外一個,就是它有很多平臺的客戶端,在mac或windows,甚至智能手機下我可以安裝一個軟件,然后能夠通過操作文件資源管理器那樣隨意同步文件。 下面是一些截圖: 放文件的主頁面: ![](https://box.kancloud.cn/24285988f1ddc5bd613438d2648fd7b7_750x333.png) 放筆記的主頁面: ![](https://box.kancloud.cn/e8fe881690976eb394ed2f353c6ff1de_750x284.png) mac下的客戶端 ![](https://box.kancloud.cn/d5fa18628542c1f79627e3f07c019e87_750x243.png) 這節主要還是介紹owncloud的部署,之所以會介紹phpMyAdmin的部署,是為了去研究docker的其他知識點,也能輕易地用phpMyAdmin去連接已經存在的數據庫,不管是不是docker部署的。 #### 2. 部署owncloud 最簡單的部署可能是這樣的: ``` $ docker run -d -p 28080:80 owncloud ``` 然后訪問這個應用,界面如下: ![](https://box.kancloud.cn/174f7378f4d94ce20b9c04b4c10c00e7_750x566.png) 不過這樣并沒有多大的用處,因為這樣只能使用sqlite作為數據庫,其實它可以使用mysql或postgresql作為數據庫的。 我們把上一篇的知識點結合起來,最終用docker-compose來部署,寫了一個部署文件: ``` version: '2' services: owncloud: restart: always image: owncloud ports: - 18080:80 volumes: - /home/hfpp2012/owncloud/html:/var/www/html:Z depends_on: - db dns: - 10.202.72.118 - 10.202.72.116 - 8.8.8.8 db: restart: always image: mariadb environment: - MYSQL_ROOT_PASSWORD=my-secret-pw - MYSQL_DATABASE=owncloud_pro volumes: - /home/hfpp2012/owncloud/datadir:/var/lib/mysql ``` `volumes`是掛載數據卷,這個上篇文章也說過,至于dns是為了讓owncloud裝插件的時候不報超時的錯誤。 重點來看的是`depends_on`,這個跟上篇文章所提的link是對應的。 整個意思是說這樣的:這個`compose`文件包含兩個服務,主要是owncloud這個服務,它又依賴于下面的db服務。也就是說這個owncloud服務可以去連接這個db數據庫服務。因為這個owncloud服務是需要連接數據庫的,必須要有一個數據庫服務,要么是外部的,要么是內部,這里用docker開啟了db服務,供owncloud來連接。 運行`docker-compose up`把這個服務跑起來。 **注意,測試的時候,建議啟動前,把兩個鏡像卷的內容清一下** ``` $ rm -rf /home/hfpp2012/owncloud/html $ rm -rf /home/hfpp2012/owncloud/datadir ``` 啟動起來后,不要再選擇默認的sqlite數據庫,我們要選擇mysql數據庫,如下所示,填上必要的信息: ![](https://box.kancloud.cn/99a55c7ede9e0406183333c54db4aa81_750x1109.png) 至于最上面的管理員賬號,你自己指定賬號名和密碼就可以了。 下面的連接數據庫的配置要參照`docker-compose.yml`文件中的db部分,用戶名是`root`,密碼是`my-secret-pw`,數據庫是`owncloud_pro`,最重要的是**數據庫主機**這部分,這部分應該填寫ip地址或域名的,不過這里只要填寫`db`就可以了,它是一個別名,因為配置中`owncloud`中有一個項是`depends_on`,它代表能夠連接到db那個容器上。 這樣點擊`創建完成`就能連接好數據庫,整個應用也能跑起來,如下圖所示: ![](https://box.kancloud.cn/100ba923705d190fb122b4162e5dd418_750x324.png) #### 3. 換別的數據庫postgresql owncloud能正常跑起來,也能正常使用了,不過這里要介紹一下,如果不用mysql數據庫呢,我要用postgresql,也是可以的。 把compose配置文件中的`db`那部分換一下,如下: ``` version: '2' services: owncloud: restart: always image: owncloud ports: - 18080:80 volumes: - /home/ubuntu/owncloud/html:/var/www/html:Z depends_on: - postgresql dns: - 8.8.8.8 - 10.0.2.3 postgresql: restart: always image: sameersbn/postgresql:9.5-4 volumes: - /home/ubuntu/owncloud/postgresql:/var/lib/postgresql:Z environment: - DB_USER=gitlab - DB_PASS=password - DB_NAME=gitlabhq_production ``` 注意,此時,在owncloud安裝頁面中的`數據庫主機`就要填成`postgresql`了。如下圖所示: ![](https://box.kancloud.cn/2c83316fd044f92cc74ea28964963546_750x1056.png) 按照之前的步驟,最后也是能正常跑起owncloud的。 #### 4. 使用phpmyadmin來連接mysql數據庫 首先,我們不來連接我們之前建立的mysql服務,而是先新建一個mysql服務的容器,然后來連接。 ##### 4.1 先跑起來 ``` $ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql ``` 然后使用新建一個連接此mysql容器的phpmyadmin的容器: ``` $ docker run --name myadmin -d --link some-mysql:db -p 8080:80 phpmyadmin/phpmyadmin ``` 打開8080端口,界面如下圖所示: ![](https://box.kancloud.cn/89e2e2d417ac0250f60a9995f4efa80e_750x716.png) 不用填寫主機,因為已經用了連接器(--link)db那個別名,用了這個別名,就會導入一些變量給myadmin這個實例,而這些變量的值,又是由`some-mysql`這個容器傳過來的,例如`some-mysql`這個容器的ip地址,端口等。關于這部分的詳細內容可以查看上一篇文章。 你可以試下把`db`那個名稱改一下,換成別的,你會發現會用不了的,因為`myadmin`這個容器已經找不到對應的`some-mysql`容器的ip地址了。 ##### 4.2 使用--net參數 使用phpmyadmin的重點不是去連接一個自己的新建的mysql服務器,這樣沒有意義,而是要連接我們目前存在于系統上的,且是用docker-compose部署的。 現在我們就來連接之前使用docker-compose部署owncloud時創建的mysql容器。 按照之前的經驗,你可以會先找mysql容器的名稱,然后把它link起來。 ``` $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a1a069dfd65c owncloud "/entrypoint.sh ap..." 18 seconds ago Up 17 seconds 0.0.0.0:18080->80/tcp owncloud_owncloud_1 8ce43555ef6f mariadb "docker-entrypoint..." 18 seconds ago Up 18 seconds 3306/tcp owncloud_db_1 ``` 可見,容器名稱為`owncloud_db_1`。 于是我們把phpmyadmin容器啟動起來。 ``` $ b3f23a98d638cd2d3a416f4692a77f56541cff44bc9c54527e9df858c348eb26 docker: Error response from daemon: Cannot link to /owncloud_db_1, as it does not belong to the default network. ``` 出錯了,意思是說不能連接到owncloud\_db\_1,網絡不對。 確實是,之前運行owncloud容器的時候,如果你有留意到的話,它會先創建一個網絡: ``` Creating network "owncloud_default" with the default driver Creating owncloud_db_1 Creating owncloud_owncloud_1 Attaching to owncloud_db_1, owncloud_owncloud_1 ... ``` 我們使用`docker network ls`命令查看一下網絡的情況。 ``` $ docker network ls NETWORK ID NAME DRIVER SCOPE 80b102ef3785 bridge bridge local 925fbce49cb8 host host local 3cc70e86c6eb none null local 29f2f9c181ea owncloud_default bridge local 53afc10ba142 root_default bridge local ``` 有一個適配器是由owncloud創建的,名為`owncloud_default`。我們把它利用起來。 我們在運行phpmyadmin容器的時候,加入一個參數`--net`。 ``` $ docker run --name myadmin -d --link owncloud_db_1:db -p 8080:80 --net owncloud_default phpmyadmin/phpmyadmin ``` 現在就可以運行起來了,記住運行前,要把以前的myadmin容器進程stop和kill掉。 ##### 4.3 使用docker-compose部署 這樣用命令來敲,我不太喜歡,因為難記,我喜歡把它寫到一個docker-compose.yml文件中,然后一條命令就可以跑起來。 ``` version: '2' services: phpmyadmin: image: phpmyadmin/phpmyadmin container_name: phpmyadmin network_mode: "owncloud_default" environment: - PMA_ARBITRARY=1 restart: always ports: - 8080:80 volumes: - /sessions ``` 在compose配置文件中使用`network_mode`代替`--net`參數。 `PMA_ARBITRARY=1`這個是phpmyadmin使用的變量,意思就是說,可以自己輸入ip地址。如下圖所示: ![](https://box.kancloud.cn/db11273e0119c3f3f79fe701f2350271_750x775.png) `服務器`那里要輸入`db`。 現在可以成功地用docker來運行phpmyadmin了,并且可以連接到自己需要的數據庫進行查看。 至于部署到線上環境,可以參考下面這兩篇文章,使用nginx反向代理過去。 - [使用compose部署gitlab應用(八)](https://www.rails365.net/articles/shi-yong-compose-bu-shu-gitlab-ying-yong-ba) - [使用compose部署Rocket.Chat應用(九)](https://www.rails365.net/articles/shi-yong-compose-bu-shu-rocket-chat-ying-yong) 完結。 下一篇:[讓 php-fpm 跑的 owncloud 應用 docker 化 (十二)](https://www.rails365.net/articles/php-fpm-owncloud-ying-yong-docker-shi-er-hua-shi-er)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看