一、Docker與虛擬機的區別
二、Docker學習步驟
2.1:安裝宿主操作系統
在VMVare中安裝了Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic x86_64)
64位操作系統
建議內核在 3.8 以上,執行uname –r 查看內核如下圖所示
2.2:更新系統
Ubuntu在安裝的過程中沒有指定root用戶密碼的操作,所以我們需要給root用戶一個密碼
命令如下
sudo passwd 系統會提示Enter New UNIX OR LINUX PASSWORD
輸入即可
再次確認密碼,會提示修改成功
接下來更新系統命令
apt update && apt dist-upgrade –y或者sudo apt update && apt dist-upgrade –y
等待系統更新完成,如下圖所示
2.3:安裝Docker
執行命令:
curl https://releases.rancher.com/install-docker/17.03.sh | sh
如下圖所示
之后需要在線下載一些安裝資源,耐心的等待就好,安裝成功如下圖所示
查看docker是否安裝成功,docker version ,如下圖所示顯示正確的版本號則說明安裝成功
安裝成功后則可啟動docker服務
systemctl start docker.service
三、Docker的練習
3.1:查看容器和鏡像
執行docker ps 或者 docker images 進行查看容器或者鏡像,如下圖(因為剛裝好Docker
所以現在的容器和鏡像都是為空的下面顯示的知識標題)
3.2:下載一個鏡像
執行docker pull 鏡像名 即可下載一個鏡像,下面以下載一個redis鏡像為例進行操作,此操作需要連接網絡,需要等待,如下圖所示
下載完成,如下圖所示
下載成功再次執行docker images命令可以看到我們下載的鏡像
3.3:創建一個tomcat運行環境
3.3.1:上傳java和tomcat
分別下載如下安裝包,上傳到服務器
3.3.2:解壓到指定的目錄
我們在Docker宿主機上創建了一個tomcat-docker目錄,把解壓好的jdk和tomcat放到該目錄,如下圖所示
3.3.3:創建用來生成鏡像的Dockerfile文件
在tomcat-docker目錄下執行命令touch Dockerfile創建一個Dockerfile文件
Vi Dockerfile內容如下,之后保存
# 設置繼承的鏡像
FROM ubuntu:16.04
# 創建者信息
MAINTAINER wxj "kingstudy@vip.qq.com"
# 設置環境變量,所有操作都是非交互式的
ENV DEBIAN_FRONTEND noninteractive
# 設置tomcat的環境變量
ENV CATALINA_HOME /tomcat
ENV JAVA_HOME /jdk
# 復制tomcat和jdk文件到鏡像中
ADD apache-tomcat-9.0.0.M21 /tomcat
ADD jdk1.8.0_131 /jdk
# 復制啟動腳本至鏡像,並賦予腳本可執行權限
ADD run.sh /run.sh
RUN chmod +x /*.sh
RUN chmod +x /tomcat/bin/*.sh
# 暴露接口8091,這是我的tomcat接口,默認為8080
EXPOSE 8091
# 設置自啟動命令
CMD ["/run.sh"]
3.3.4:創建自動啟動文件run.sh
在創建Dockerfile的時候我們可以發現最后的一行設置自啟動命令里面指定了/run.sh
這里的’/’是根目錄的意思,和Linux操作系統的’/’目錄有所區別,只要Dockerfile和run.sh在同一個目錄下這個地方就可以用/來指定,下面我們在tomcat-docker路徑下執行touch run.sh創建一個run.sh文件,內容如下
#!/bin/bash
# 啟動tomcat
exec ${CATALINA_HOME}/bin/catalina.sh run
run.sh的作用是在啟動容器的時候啟動tomcat服務
3.3.5:根據Dockerfile生成鏡像
注意:這個命令一定要在tomcat-docker這個目錄下執行才可以,因為里面有復制文件的操作用的是相對目錄
root@KingServer1:~/tomcat-docker# docker build -t tomcat:test1 -f /root/tomcat-docker/Dockerfile .
Sending build context to Docker daemon 391.1 MB
Step 1/12 : FROM ubuntu:16.04
---> d355ed3537e9
Step 2/12 : MAINTAINER wxj "kingstudy@vip.qq.com"
---> Using cache
---> c1f3d38837ca
Step 3/12 : ENV DEBIAN_FRONTEND noninteractive
---> Using cache
---> be1ca3b3b014
Step 4/12 : ENV CATALINA_HOME /tomcat
---> Running in ae8df355595b
---> dcba8eb85069
Removing intermediate container ae8df355595b
Step 5/12 : ENV JAVA_HOME /jdk
---> Running in 9fcfd0114cb8
---> 93155ece74c9
Removing intermediate container 9fcfd0114cb8
Step 6/12 : ADD apache-tomcat-9.0.0.M21 /tomcat
---> 5c6cb315cd7b
Removing intermediate container a205f98691c1
Step 7/12 : ADD jdk1.8.0_131 /jdk
---> 026a07f7732f
Removing intermediate container e75995168a1a
Step 8/12 : ADD run.sh /run.sh
---> bae5ce399a0d
Removing intermediate container d6661b08ec16
Step 9/12 : RUN chmod +x /*.sh
---> Running in 1c8c73ba4bbd
---> e32338aed2aa
Removing intermediate container 1c8c73ba4bbd
Step 10/12 : RUN chmod +x /tomcat/bin/*.sh
---> Running in 90397e868a4b
---> 2879d10a8022
Removing intermediate container 90397e868a4b
Step 11/12 : EXPOSE 8091
---> Running in e9e9de8bb2a5
---> 7d5fa1266ad3
Removing intermediate container e9e9de8bb2a5
Step 12/12 : CMD /run.sh
---> Running in 5ccebdc7a956
---> 1835085d375b
Removing intermediate container 5ccebdc7a956
Successfully built 1835085d375b
查看鏡像是否生成成功,執行docker images如下圖所示可以看到鏡像ID 183,則說明成功
3.3.6:用生成的tomcat鏡像來啟動一個容器
執行如下命令
docker run -d -p 50080:8080 tomcat:test1
-p是指定宿主主機和容器的端口映射, 用宿主主機的50080端口映射容器的8080端口
查看是否啟動成功,docker ps 如下圖所示可以看到啟動成功
3.3.7:測試容器是否部署成功
容器啟動以后,我們就可以通過宿主主機來訪問tomcat容器了,由於我們啟動容器的時候做了端口映射所以訪問的地址為:
如下圖所示:說明部署成功