轉載https://blog.csdn.net/wzsy_ll/article/details/82866627
1、為什么使用Docker(本人)
最近總是頻繁的在新服務器發布項目, 每次發布都需要布置項目所需要的環境特別麻煩,而且還有一台機器需要兩個環境的狀況
例如:發布java web 項目而言 需要下載安裝jdk 和tomcat 安裝Docker后只需要幾個命令就輕松搞定,還有兩個環境的問題,我們有一台服務器需要發布兩個java web項目 而有一個項目必須使用jdk1.7 而另一個必須用jdk1.8,這個使用Docker都可以輕松解決
2、Docker介紹
Docker里面有三個概念分別是:
鏡像,倉庫,容器
經過簡單的安裝我對這三個概念的理解大致如下:
以下為本人個人觀點僅供參考!
容器:就說運行java web項目,首先需要有運行環境,而這個容器就是我們的運行環境
鏡像:我把鏡像理解為我們的操作系統,這個操作系統(鏡像)運行起來后才會有我們程序運行的環境(容器)
倉庫:這個倉庫也就是我們下載操作系統(鏡像)的地方,里面有各式各樣的操作系統(鏡像),redis,tomcat的鏡像等等
接下來進行Docker的安裝和簡單的使用來體驗一下使用Docker是不是很方便
3、Docker安裝與啟動
因為第一次使用Docker也不清楚哪個版本比較好,所以按照官網的提示安裝了最新版本(以下內容來自官網,本人親測安裝成功)
1)Docker安裝所需要CentOS7以上才可以安裝
2) 安裝所需的軟件包
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3) 設置 stable 鏡像倉庫:
$ sudo yum-config-manager \ --add-repo \ https:/ /download.docker.com/linux /centos/docker-ce.repo4) 啟用 edge 和 testing 鏡像倉庫:
$ sudo yum-config-manager --enable docker-ce-edge $ sudo yum-config-manager --enable docker-ce-testing5) 更新yum軟件包索引:
$ sudo yum makecache fast
6) 安裝Docker最新版本:
$ sudo yum install docker-ce
7)啟動Docker:
$ sudo systemctl start docker
8)驗證是否啟動成功:
$ sudo docker run hello-world
4、Docker常用命令以及使用圖解
1、拉取鏡像
docker pull 鏡像地址
阿里docker鏡像地址:
https://dev.aliyun.com/search.html
以拉取tomcat鏡像為例,點擊搜索
這個也就是帶有tomcat環境的操作系統,這個是完整的命令直接復制就行
docker pull registry.cn-hangzhou.aliyuncs.com/shuodao/tomcat-8.5.27
因為tomcat需要java環境所以下載會有一點慢
等待下載完成...
2、查看所有鏡像
docker images
上圖可以看到兩個鏡像,第一個是我們測試Docker是否成功安裝的 第二個使我們下載好的tomcat鏡像
3、運行鏡像
docker run -d -p 本機端口:容器端口 鏡像名稱
-d:鏡像在后台運行
-p指定本機與容器內部交互的端口 -P是隨機開放一個端口與容器內部ID映射(這里不做演示)
運行tomcat鏡像,我們把本機的80端口映射到容器的8080端口
docker run -d -p 80:8080 registry.cn-hangzhou.aliyuncs.com/shuodao/tomcat-8.5.27
我們訪問一下看tomcat是否成功啟動
tomcat主頁已經顯示證明服務正常啟動了
4、查看正在運行的容器
docker ps
5、進入到容器內部
docker exec -it 容器ID bash (下面是我的容器ID 每個容器ID是不一樣的 使用docker ps 查看一下)
docker exec -it a1a4eaba7dd4 bash
退出容器:輸入exit
6、文件傳輸
如果我們想獲取容器內tomcat的日志文件怎么辦呢
容器 -----> 本機
docker cp ID全稱:容器文件路徑 本地路徑
docker cp a1a4eaba7dd44db8a23701c2f7825a506381c7c889bb0702dd747ad521a809d0:/usr/tomcat/logs/catalina.out /usr/local/Docker/catalina.out
本機 -----> 容器 (這個就不演示了都差不多)
docker cp 本地文件路徑 ID全稱:容器路徑
7、停止容器
docker stop 容器ID
docker stop a1a4eaba7dd4
我們再訪問一下:
下面兩個命令一會兒會說到:
8、刪除容器
docker rm 容器id
9、刪除鏡像
docker rmi 鏡像id
5、構建鏡像並發布自己的項目
1、在/usr/local下創建Docker文件夾(隨便的一個空的文件夾)
2、上傳war包到這個文件夾
war包下載地址:https://pan.baidu.com/s/1R2d_C98A-EzlEibChQ1p7A 提取碼: fuf4
3、創建Dockerfile文件
touch Dockerfile
3、編輯Dockerfile
vi Dockerfile
4、寫入以下內容
#該鏡像的父鏡像 為 tomcat 鏡像 這樣我們就有了tomcat的環境 from registry.cn-hangzhou.aliyuncs.com/shuodao/tomcat -8.5 .27 #復制當前文件夾下的 war包 到鏡像中tomcat的webapps目錄 COPY TestDocker.war /usr/tomcat/webapps #去除容器內部中文亂碼問題 ENV LANG C.UTF -85、構建鏡像(還是在Docker文件夾 也就是Dockerfile所在文件夾)
docker build -t 鏡像名稱(鏡像名稱必須為小寫):鏡像版本 .
注意后面的點要加上,這個代表Dockerfile的所在目錄
docker build -t docker-test:latest .
使用docker images 查看一下我們構建的鏡像
運行鏡像
docker run -d -p 80:8080 docker-test
像本文剛開始提到的,每個項目都需要有自己的運行環境,我們可以為每個項目都配置一個屬於自己的鏡像
6、刪除鏡像和容器
當我們有廢棄的鏡像和容器時,不使用需要刪除
我們需要注意的一點是:
鏡像啟動后會產生容器,如果不先刪除容器,鏡像是無法刪除的
例如:
我們停掉剛才的容器,刪除我們的鏡像
正確的步驟:
首先我們需要先刪除容器:
查看所有狀態的容器(包括已經被停止調的容器)
docker ps -a
先刪除容器:
docker rm 87c728718a7b
再查看一下發現容器已被刪除:
接下來刪除鏡像:
docker rmi 48dc9dfde4d8