Docker(三):部署软件
Docker的鏡像文件可以在鏡像倉庫中進行搜索。
部署軟件目錄導航:
- 常用命令
- 部署 Tomcat
- 部署 MySQL
- 部署 Oracle
常用命令
docker的常用命令如下:
- docker -v , --version : 輸出當前docker的版本信息。
- docker images : 查看鏡像,-a 表示查看所有 ,-q 只顯示鏡像ID。
- docker ps : 查看所有運行中的容器列表,-a 表示查看所有(包括已退出的容器),-q 只顯示ID,-s顯示文件大小。
- docker pull : 從鏡像倉庫下載鏡像,默認的鏡像倉庫地址:(https://hub.docker.com),可以直接下載鏡像倉庫中有的鏡像文件,默認下載latest版本,也使用:tag指定下載哪個版本。
- docker rm: 刪除容器,后面帶指定容器的ID,即可刪除對應的容器。
- docker rmi: 刪除獎項文件,后面可以是鏡像文件的名稱或則ID,都可刪除鏡像文件。
- docker run: 啟動鏡像并創建一個新容器實例,-a 可以添加STDIN、STDOUT或STDERR,-d 表示容器在后臺執行(比較常用),-e 可以設置環境變量,-m 可以設置內存大小, -p 可以將系統端口指向容器端口,使其可以在容器外進行訪問,(例如 -p 80:8080 可以將系統的80端口與容器的8080端口綁定。則容器外可以對80端口訪問到容器的8080端口,比較常用), -v 可以將宿主的文件掛載到容器上,如 -v /test:/soft? 將會把宿主的 /test 目錄掛載到容器的 /soft目錄下,如果test目錄不存在則會新建一個test目錄。
- docker stop: 停止容器的運行。
- docker logs: 顯示容器的日志信息,-f 跟蹤容器實施日志信息,-t 顯示日志的時間信息。?
- docker search: 在Docker Hub 中搜索鏡像文件。
具體的執行命令,還可以去參考鏡像倉庫對應鏡像的詳細介紹。
部署 Tomcat
下載Tomcat鏡像文件,如下命令會下載latest版本的tomcat。
[root@localhost ~]# docker pull tomcat下載完成后可以使用 docker images 查看下載后的鏡像文件信息。
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/tomcat latest df50c9d355cf 6 days ago 463 MB啟動tomcat程序,如下命令會在后臺執行tomcat。并將tomcat默認的8080端口指向系統的8080端口。
[root@localhost ~]# docker run -d -p 8080:8080 tomcat如果想打開多個Tomcat則直接,如上一樣的名并將8080端口改為8081則,兩個tomcat互不干擾,可同時存在。
docker run -d -p 8081:8080 tomcat使用docker ps 查看正在運行的程序
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d64f362c40a tomcat "catalina.sh run" 8 seconds ago Up 7 seconds 0.0.0.0:8081->8080/tcp gracious_bohr 39d01b39e8d3 tomcat "catalina.sh run" 4 minutes ago Up 4 minutes 0.0.0.0:8080->8080/tcp wizardly_davinci其中有兩個Tomcat程序。如下訪問結果:
? ? ? ? ?
?
部署 MySQL
下載最新版Mysql。
[root@localhost ~]# docker pull mysql查看鏡像是否下載成功。
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/tomcat latest df50c9d355cf 6 days ago 463 MB docker.io/mysql latest 8d99edb9fd40 6 days ago 445 MB啟動鏡像文件,執行如下命令,會在后臺啟動mysql,暴露3306端口,并命名為 my-mysql 且設置root密碼為123456。
[root@localhost ~]# docker run -p 3306:3306 --name my-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql執行如下命令可以進入mysql 的 client。第一條 docker exec -it my-mysql bash。 可以進入到mysql的bash shell界面,然后執行 mysql -uroot -p是輸入密碼即可進入到mysql client。
[root@localhost ~]# docker exec -it my-mysql bash root@f3f79ca4eae1:/# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 35 Server version: 8.0.11 MySQL Community Server - GPLCopyright (c) 2000, 2018, 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>可以通過日志看到安裝的 mysql 版本是 8.0.11。這個版本使用navicat連接時,會報如下錯誤:
執行select host, user, authentication_string, plugin from user;命令可以查詢
- host : 允許用戶登錄的IP,%表示可遠程登錄。
- user : 當前數據庫的用戶名。
- authentication_string: 用戶的密碼。
- plugin : 密碼的加密方式。
導致如上問題就是因為 'root'@'%' 的密碼加密方式 使用的是 caching_sha2_password。我們需要修改它的加密方式。
mysql> select host, user, authentication_string, plugin from user; +-----------+------------------+------------------------------------------------------------------------+-----------------------+ | host | user | authentication_string | plugin | +-----------+------------------+------------------------------------------------------------------------+-----------------------+ | % | root | $A$005$bx9?Rgb:Y0&7q7:;Ef8isqjh0JQzsp6bJXk4eL/ibgbXx8zwdntsl0qxGA8 | caching_sha2_password | | localhost | mysql.infoschema | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | | localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | | localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | | localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | mysql_native_password | +-----------+------------------+------------------------------------------------------------------------+-----------------------+ 5 rows in set (0.00 sec)執行如下命令進行修改加密方式。
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; Query OK, 0 rows affected (0.09 sec)mysql> select host, user, authentication_string, plugin from user; +-----------+------------------+-------------------------------------------+-----------------------+ | host | user | authentication_string | plugin | +-----------+------------------+-------------------------------------------+-----------------------+ | % | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | mysql_native_password | | localhost | mysql.infoschema | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | | localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | | localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | | localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | mysql_native_password | +-----------+------------------+-------------------------------------------+-----------------------+ 5 rows in set (0.00 sec)執行完畢后查看加密方式已修改,現使用navicat連接測試如下。
部署 Oracle
第一步還是下載Oracle數據庫鏡像倉庫搜索的oracle 11g 可以找到 wnameless/oracle-xe-11g 鏡像文件。
[root@localhost ~]# docker pull wnameless/oracle-xe-11g查看下載后的鏡像文件有2.13GB,比較大。
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/tomcat latest df50c9d355cf 6 days ago 463 MB docker.io/mysql latest 8d99edb9fd40 7 days ago 445 MB docker.io/wnameless/oracle-xe-11g latest 698cc7361de4 5 weeks ago 2.13 GB啟動命令如下:
[root@localhost ~]# docker run --name oracle -d -p 1521:1521 -e ORACLE_ALLOW_REMOTE=true wnameless/oracle-xe-11g默認用戶信息如下:
hostname: localhost port: 1521 sid: xe username: system password: oracleSYS&SYSTEM的密碼 oracle
測試效果如下:
?
轉載于:https://www.cnblogs.com/peter1018/p/9259454.html
總結
以上是生活随笔為你收集整理的Docker(三):部署软件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机控制技术应用与前景论文,论计算机和
- 下一篇: Android tts语音播报设置最大音