Docker 是一個開源的應用容器引擎,讓開發者能夠打包他們的應用以及依賴包到一個可移植的容器中,而後發佈到任何流行的Linux機器上,也能夠實現虛擬化。容器是徹底使用沙箱機制,相互之間不會有任何接口。nginx
它是一項web
cgroup 技術幫咱們實現資源的限制 namespace 來完成對資源的隔離。參考文檔:https://blog.csdn.net/nimoyaoww/article/details/79155489docker
docker images 查看本地的鏡像 docker search 鏡像名 搜索網上的相關鏡像 docker pull 鏡像名 拉取你要的鏡像 docker rmi 鏡像名 刪除鏡像 docker save 鏡像名|gzip>>保存的文件名.tar.gz 將拉取下來的鏡像保存在本地 docker load < 保存的文件名.tar.gz 將保存的鏡像文件從新加載 docker inspect 容器名或id 能查看到此容器的信息 docker logs 容器名或id 查看日誌 若是加了-f 參數就能夠動態查看日誌
docker run -it 鏡像名 (bash/sh)進入時使用的shell方式
-t 分配一個僞終端
-i 讓容器的標準輸入保持一個打開的狀態shell
--name 名字 能夠給咱們的容器起一個名字
--rm 退出容器的時候 自動刪除容器
docker ps 查看正在運行的容器 -a 能顯示那些已經關掉的容器 docker rm 容器id或者容器名字 刪除容器(加-f表示強制刪除) docker attach 容器名字或id 進入到一個啓動中的容器(退出容器自動中止)
docker exec -it 容器名字 bash/sh 進入到一個啓動中的容器(退出容器不中止) exit 能夠退出當前的容器 docker commit -m "註釋" 容器名字或id 生成的鏡像的名字 將現有的容器生成新的鏡像保存在本地倉庫
docker網絡映射ubuntu
端口映射
-P 隨機映射
-p 主機端口:容器端口bash
docker run -it -d --name 名字 -p 主機端口:容器端口 容器名
數據卷網絡
docker run -it -d --name 名字 -v 宿主機目錄:容器目錄 容器名
數據卷容器ui
docker run -it -d --name 名字 --volumes-from 容器名
容器互聯spa
先啓動一個容器 docker run -d --name web1 -p 80:80 ningx 在啓動一個容器: docker run -d --name web2 --link web1 -p 8080:80 ningx
基礎的Dockerfile的編寫(文件名必須叫Dockerfile).net
FROM ubuntu MAINTAINER liuda liuda@1000phone.com RUN apt-get update RUN apt-get install nginx -y RUN echo "daemon off;">>/etc/nginx/nginx.conf #設置開放端口 EXPOSE 80 # 默認在容器啓動的時候執行的命令 CMD ["nginx"]
構建命令
sudo docker build -t 標籤名字 ./
上傳本身的鏡像到倉庫
sudo docker login sudo docker images sudo docker tag 77b3321ee9b8 whoareyou0401/1805ubuntu sudo docker push whoareyou0401/1805ubuntu
補充
sudo docker start 0b4bb44bfa81 運行一箇中止的容器 sudo docker inspect --format "{{.State.Pid}}" 0b4bb44bfa81 獲取指定id的容器的進程PID sudo nsenter -t 2916 -u -i -n -p 進入到一個運行中的容器(推薦方式,2916是容器進程PID) sudo docker ps -a -q 獲取容器id sudo docker kill $(sudo docker ps -a -q) 殺死一個運行的容器進程 sudo docker logs 容器id 查看容器的訪問日誌