安裝docker 好慢....一個小時吧... 啟動docker 先執行命令docker version來來一下: 發現沒有啟動docker server, 執行命令: 然後再查看一下 docker version docker pull命令 pull命令用於拉取鏡像 可以使用docker pull ...
安裝docker
curl -s https://get.docker.com|sh
好慢....一個小時吧...
啟動docker
先執行命令docker version來來一下:
docker version
發現沒有啟動docker server, 執行命令:
service docker start
然後再查看一下 docker version
docker pull命令
pull命令用於拉取鏡像
可以使用docker pull --help命令來查看幫助
紅色劃線部分就已經標明瞭命令的使用格式
-a :拉取所有 tagged 鏡像 --disable-content-trust :忽略鏡像的校驗,預設開啟
docker images命令
可以查看本地的鏡像
同理也可以使用 docker images --help 來查看具體的使用幫助
-a :列出本地所有的鏡像(含中間映像層,預設情況下,過濾掉中間映像層) --digests :顯示鏡像的摘要信息 -f :顯示滿足條件的鏡像 --format :指定返回值的模板文件 --no-trunc :顯示完整的鏡像信息 -q :只顯示鏡像ID
docker run 命令
-a stdin: 指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項 -d: 後臺運行容器,並返回容器ID -i: 以交互模式運行容器,通常與 -t 同時使用 -t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用 --name="nginx-lb": 為容器指定一個名稱 --dns 8.8.8.8: 指定容器使用的DNS伺服器,預設和宿主一致 --dns-search example.com: 指定容器DNS搜索功能變數名稱,預設和宿主一致 -h "mars": 指定容器的hostname -e username="ritchie": 設置環境變數 --env-file=[]: 從指定文件讀入環境變數 --cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運行 -m :設置容器使用記憶體最大值 --net="bridge": 指定容器的網路連接類型,支持 bridge/host/none/container: 四種類型 --link=[]: 添加鏈接到另一個容器 --expose=[]: 開放一個埠或一組埠
docker hello world
接下來將演示使用docker來跑一個hello world.
docker pull hello-world
如果pull的時候沒有指定版本, 就會拉取最新版本
接下來使用docker images命令來查看下載的鏡像
使用run語句來運行剛剛的hello-world鏡像
docker run hello-world
docker安裝Nginx
docker官方倉庫中Nginx的頁面: https://hub.docker.com/r/library/nginx/tags/
docker pull nginx:1.12.2
下載一會兒......完成後,再使用docker images命令查看一下:
使用run -d命令讓nginx在後臺運行(這樣才不會導致終端視窗關閉後nginx也會跟著停止運行)
-p 7788:80 的意思是, run時將docker容器中的80埠映射到主機的7788埠
docker run -d -p 7788:80 nginx:1.12.2
使用docker ps命令來查看當前運行的docker 實例:
docker ps
其中容器的ID 是edb334b917cc, 這個id之後會用到
大家可以把docker想成一個新裝好的虛擬機. 但是如何進入這個實例來進行操作呢?
docker exec -it <id> bash
其中 docker exec是指令, -it是參數, id是docker實例的id, bash是對這個實例進行的操作, 因為這裡想打開這個實例的bash來進行系統操作之類的.
這樣就進入到了這個Nginx實例的bash下, 可以進行一系列的shell命令.其實就類似在操作一臺新虛擬機.
大家會註意到我輸入 docker exec命令時, 並沒有把docker id 寫全. 因為只需要根據id來唯一確定docker實例就可以了, 沒必要寫全.
只是介紹一下exec這個命令, 目前還用不到, 如果已經進來了, 那就exit退出Nginx實例的bash終端.
在主機中執行 netstat -na | grep 7788 來查看剛纔啟動Nginx時綁定的7788埠是否起作用了.
可以看到7788埠正在監聽.
接下來在主機上打開瀏覽器, 輸入自己主機的ip+埠,來驗證一下, 看到Nginx就說明成功了:
docker安裝Redis
pull的時候不指定版本的話, 預設下載的是最新版
docker pull redis
創建一個data目錄, 用於存放之後的持久化文件
mkdir -p /redis/data
運行實例:
docker run -p 6379:6379 -v /redis/data:/data -d redis:latest redis-server --appendonly yes
命令說明:
-p 6379:6379 : 將容器的6379埠映射到主機的6379埠 -v /redis/data:/data : 將主機中/redis/data/掛載到容器的/data redis-server --appendonly yes : 在容器執行redis-server啟動命令,並打開redis持久化配置
在redis docker實例中打開redis客戶端:
首先docker ps查看id, 其中redis實例的id是 4c4109ab9a59
使用exec來執行docker實例內部命令, 4c41是redis實例的docker id 的前幾位, 只要能在當前機器中唯一識別就好, 不一定要把id寫全.
docker exec -it 4c41 redis-cli
redis就可以正常使用了.