docker從安裝到入門(centos7連不上網)
我們安裝好centos7之後,只用網路連結的NAT模式,主機有網你就有網,傻瓜式連結。但是發現ping不通百度。。
通過ifconfig -a發現ens33沒有ip,雖然和這個沒關係,因為用的是NAT模式。我們編輯vi /etc/sysconfig/network-scripts/ifcfg-ens33
將onboot設定為true即可。
連線後 我們按網路上的教程。
uname -r看是否版本足夠
yum update更新版本
yum install -y docker-io安裝
systemctl start docker.service啟動服務
我們安裝好之後,如何使用呢。
client是docker客戶端。
images是docker映象
containers是容器
registry是集中儲存分發映象的服務。最常用的Docker Registry是官方的Docker Hub
通過docker images來檢視我們有哪些映象。
一個沒有。。我們可以去下載(docker hub),或者自己打包
1.下載:docker pull centos
2.打包需要通過dockerfile來自動編譯生成映象。新建dockerfile文字檔案,將打包好的war放在一起。內容如下:
FROM:基於哪個映象,你需要有一個參照的 標準映象。
VOLUME:可以將本地資料夾或者其他container的資料夾掛載到container中
ADD:將檔案<src>拷貝到container的檔案系統對應的路徑<dest>
RUN:RUN命令將在當前image中執行任意合法命令並提交執行結果。命令執行提交後,就會自動執行Dockerfile中的下一個指令
ENTRYPOINT:container啟動時執行的命令,但是一個Dockerfile中只能有一條ENTRYPOINT命令,如果多條,則只執行最後一條
我們需要cd到jar的目錄下執行
3.docker使用dockerfile打包命令 docker build -t wechat . 最後有個點
docker容器就成成了,可以用docker images來檢視。。這就相當於一個執行環境。。
4.通過docker run -d -p 8080:8080 wechat 來執行
docker run --name {容器名} -p {宿主機埠}:{docker埠} –v {宿主機目錄}:{docker日誌目錄} -d {映象ID:latest}
注意:這裡我使用的centos,發現莫名其妙啟動不了。
原因就是:Docker容器後臺執行,就必須有一個前臺程序。主執行緒結束,容器會退出。
docker run -d -p wechat 改成 docker -dit -p wechat 就行了。
使用docker stop $(docker ps -a -1) 停止所有的容器。
用docker rmi <image id>來刪除容器,,我發現刪不掉、、官方文件說,只能刪除未使用的。。
使用docker rmi -f 來強制刪除。、。、
docker rm $(docker ps -qf status=exited) 刪除已經停掉的容器。
5.打包jar還是war都需要jdk執行環境,執行jar失敗,檢視日誌發現是沒有jdk
先打包一個jdk得容器然後根據該容器進行構造環境。
需要一個jdk得tar.gz然後編寫dockerfile
同上面打包,然後執行
docker run -d -it jdk1.8docker:20180730 /bin/bash
注意:建立容器的時候一定要使用 -it /bin/bash這種方式,要不然jdk的容器起不來
vim儲存只讀檔案 :w !sudo tee %