1. 程式人生 > >Linux Centos7.5從docker的安裝到容器的部署執行

Linux Centos7.5從docker的安裝到容器的部署執行

環境:

  Win10 內的 VMware workstation(Centos7 64位)

  所有命令皆為 root 使用者, 非 root 使用者應在命令前加 sudo

 

檢視系統版本命令: cat /etc/redhat-release

 

安裝Docker: yum install docker

啟動: service docker start

設定開機啟動: chkconfig docker on

 

檢視本地映象列表: docker images

從官方倉庫搜尋映象: docker search <關鍵詞>

  例: docker search centos

從官方倉庫拉取一個centos映象: docker pull <映象名>

  例: docker pull centos

移除一個本地映象: docker rmi <映象id>

用centos映象執行一個docker容器: docker run  -t  -i  -d -p 8181:81 -p 8282:82  -v /home/package:/home  --privileged=true  centos  /bin/bash

 -i: 讓容器的標準輸入保持開啟

 -t: 分配一個偽終端並繫結到容器的標準輸入上

 -d: 守護態執行容器(後臺執行)

 -p: 將主機的8181埠繫結到容器的81埠, 這樣訪問主機的8181埠就相當於訪問了容器的81埠(可多次使用-p引數繫結多個埠)

 -v /home/package:/home: 將主機的/home/package目錄掛載到容器的/home目錄(可以事先把 jdk, mysql等安裝包存放在主機的package目錄下)

 --privileged=true: 給容器增加特權, 否則在容器內訪問掛載目錄時會提示沒有許可權

 centos: 映象名稱

 /bin/bash: 容器啟動後執行 bash指令碼直譯器

檢視所有容器: docker ps -a

檢視某個容器的詳細資訊: docker inspect <容器id>

從容器資訊中找到容器的內網ip地址(啟動服務時可能用得著): NetworkSettings > IPAddress

關閉執行中的容器: docker stop <容器id>

啟動已關閉的容器: docker start <容器id>

重啟一個正在執行的容器: docker restart <容器id>

刪除一個容器: docker rm <容器id>

進入一個正在執行的容器

  方式1: docker attach <容器id>

    缺點: 退出容器時, 容器會自動關閉, 而正常情況下往往需要容器繼續在後臺執行

  方式2: docker exec -it <容器id> /bin/bash

  方式3: 

    獲取容器程序PID: docker inspect --format "{{ .State.Pid }}" <容器id>

    進入容器: nsenter --target <容器程序PID> --mount --uts --ipc --net --pid

進入到掛載目錄: cd /home

解壓jdk壓縮檔案: tar -zxvf  server-jre-8u191-linux-x64.tar.gz

將解壓後的資料夾移動至/usr/local/:  mv  jdk1.8.0_191/  /usr/local/jdk1.8

設定環境變數:

  方式1:

    配置/etc/profile 追加內容: 

      export JAVA_HOME=/usr/local/jdk1.8
      export PATH=$PATH:$JAVA_HOME/bin

    載入生效: source  /etc/profile

    缺點: 重新進入容器後環境變數將失效, 每次進入容器都必須手動載入才行

  方式2:

    配置/root/.bashrc 追加內容:

      export JAVA_HOME=/usr/local/jdk1.8
      export PATH=$PATH:$JAVA_HOME/bin

    載入生效: source /root/.bashrc

測試jdk是否安裝成功:  java -version

安裝其他軟體

安裝lrzsz(用於上傳檔案到容器或從容器下載檔案): yum install lrzsz

新建目錄: mkdir /var/server

進入目錄: cd /var/server

上傳服務jar包(server.jar)到目錄: rz

執行服務: java -jar server.jar --server.address=容器的內網ip地址  --server.port=81

現在, 在外部訪問虛擬器 http://虛擬機器ip:8181/ 就能訪問到容器的 81 埠服務了

至此, 容器服務部署完成

將容器儲存為新映象: docker commit  -m  "這裡寫容器說明"  -a  "這裡寫你的名字<容器id>  <映象名>:<標籤>

  例: docker commit  -m  "測試建立映象"  -a  "yjy [email protected]"  dfgsd34fss3  docker.io/centos-yjy:latest

匯出容器快照到本地檔案: docker  export  <容器id>  >  /home/centos-yjy.tar

匯入容器快照檔案為映象: docker import  /home/centos-yjy.tar  <新映象名稱>

將本地映象匯出為映象檔案: docker save  -o  <匯出檔名>  <映象名>:<標籤>  

  例: docker save  -o  /home/centos-yjy.tar  centos-yjy:latest

從本地檔案載入映象: docker load  <  /home/centis-yjy.tar