提示:以下是在騰訊CentOS7.4雲服務器上操作。
Docker的基本操作:https://www.cnblogs.com/opsprobe/p/10963098.html
一、安裝Docker
# 使用yum命令在線安裝
yum install docker
# 安裝后查看Docker版本
docker -v
# 啟動與停止Docker
systemctl命令是系統服務管理器指令,它是 service 和 chkconfig 兩個命令組合。
啟動docker:systemctl start docker
停止docker:systemctl stop docker
重啟docker:systemctl restart docker
查看docker狀態:systemctl status docker
加入開機啟動:systemctl enable docker
查看docker概要信息:docker info
查看docker幫助文檔:docker --help
二、部署應用
1、MySQL部署
# 拉取MySQL鏡像
docker pull mysql
# 查看鏡像
docker images
# 創建MySQL容器
docker run -di --name my-mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
-p:代表端口映射,格式為 宿主機映射端口:容器運行端口
-e:代表添加環境變量 MYSQL_ROOT_PASSWORD是root用戶的登錄密碼
進入MySQL容器,登陸MySQL
# 進入mysql容器
命令 docker exec -it container_name (或者 container_id) /bin/bash
docker exec -it my-mysql /bin/bash
注意:這里用的是登錄守護式容器方式,用 exit 命令退出時,容器不會停止,docker ps -a 命令查看后台運行。
# 登錄mysql,密碼為創建容器時設置的123456
mysql -u root -p
遠程登錄MySQL
在自己的電腦上用Navicat軟件連接雲服務器的Docker容器,這里主機名或IP地址處填寫雲服務器的IP,端口填寫映射端口33306
連接時出現以下錯誤提示:1251 - Client does not support authtication protocol requested by server;consider upgrading MySQL client
解決方法參考自:https://blog.csdn.net/uniquewonderq/article/details/89646327
root是用戶名,'%' 是指任何IP地址,mysql_native_password是舊的密碼驗證機制, by '123456'中的 '123456' 是密碼,最后別忘了分號;
查看容器IP地址
我們可以通過以下命令查看容器運行的各種數據
docker inspect my-mysql
執行下面的命令輸出容器IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' my-mysql
運行效果如下:
我們可以看到數據庫服務器的IP是172.17.0.2
2、Tomcat部署
拉取tomcat鏡像
docker pull tomcat:8-jre8
創建tomcat容器
docker run -di --name=my-tomcat -p 9000:8080 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps --privileged=true tomcat:8-jre8
參數說明:
-p:表示地址映射
-v:表示目錄映射關系(前者是宿主機目錄,后者是映射到宿主機上的目錄),可以使用多個-v做多個目錄或文件映射。注意:最好做目錄映射,在宿主機上做修改,然后共享到容器上。
--privileged=true:表示將擴展權限授予此容器
測試:
在宿主主機 /usr/local/tomcat/webapps/ 目錄下,新建目錄test,在test目錄下新建一個index.html命名的HTML文件,然后保存退出。
進入到容器查看,可看到webapps目錄下有test目錄:
在瀏覽器地址欄輸入,服務器IP地址:9000/test/index.html,即可訪問到如下界面。
3、Nginx部署
# 拉取Nginx鏡像
docker pull nginx
創建Nginx容器
docker run -di --name=my-nginx -p 8585:80 nginx
在瀏覽器地址欄輸入,服務器IP地址:8585