1.什么是docker
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然后發布到任何流行的 Linux或Windows 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
2.什么是dockfile
Dockfile是一個用於編寫docker鏡像生成過程的文件,其有特定的語法。在一個文件夾中,如果有一個名字為Dockfile的文件,其內容滿足語法要求,在這個文件夾路徑下執行命令:docker build --tag name:tag .,就可以按照描述構建一個鏡像了。name是鏡像的名稱,tag是鏡像的版本或者是標簽號,不寫就是lastest。注意后面有一個空格和點。
3.什么是docker-compose
假如,你有一個java鏡像,一個mysql鏡像,一個nginx鏡像。如果沒有docker-compose,那么每次啟動的時候,你需要敲各個容器的啟動參數,環境變量,容器命名,指定不同容器的鏈接參數等等一系列的操作,相當繁瑣。而用了docker-composer之后,你就可以把這些命令一次性寫在docker-composer.yml文件中,以后每次啟動這一整個環境(含3個容器)的時候,你只要敲一個docker-composer up命令就ok了。
5.docker構建服務環境的步驟思路
思路
將nginx、mysql、tomcat等環境打包為一個個docker,然后使用docker-compose管理。
服務器內安裝docker相關環境,然后直接運行docker-compose配置,即可快速搭建完成服務器環境。
之后可以將相關配置轉移到git,遇到新服務器時,直接clone下來即可部署。
反之則需要在服務器內分別安裝nginx等環境,很麻煩
環境
服務器:Centos7.6 阿里雲
安裝Docker
服務器上需要安裝docker和docker-compose,具體百度
docker&docker-compose常用命令
- 構建yml(需進入包含docker-compose.yml的文件夾) docker-compose build
- 部署並后台啟動(需進入包含docker-compose.yml的文件夾) docker-compose up -d
- 查看運行中的容器 docker ps
- 查看容器日志 docker logs [ID或者名字]
- 停止容器 docker stop [ID或者名字]
- 刪除所有已關閉的容器 docker container prune
- 進入指定鏡像的命令行 docker exec -it [ID或者名字] bash
注意如果報錯,可嘗試使用sh而不是bash
構建nginx、mysql鏡像
查看參考里的鏈接。
- 構建nginx鏡像時,只需要將配置文件映射到外部即可和普通nginx一樣配置
