## Docker簡介
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的Linux機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
它是一項虛擬化技術,應用場景廣泛如web部署 可以快速部署我們的應用。cgroup 技術幫我們實現資源的限制 namespace 來完成對資源的隔離。
## docker的安裝
參考文檔:[https://blog.csdn.net/nimoyaoww/article/details/79155489](https://blog.csdn.net/nimoyaoww/article/details/79155489)
## docker的基本操作
~~~
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 讓容器的標準輸入保持一個打開的狀態
~~~
--name 名字 可以給我們的容器起一個名字
--rm 退出容器的時候 自動刪除容器
docker ps 查看正在運行的容器
-a 能顯示那些已經關掉的容器
docker rm 容器id或者容器名字 刪除容器(加-f表示強制刪除)
docker attach 容器名字或id 進入到一個啟動中的容器(退出容器自動停止)
docker exec -it 容器名字 bash/sh 進入到一個啟動中的容器(退出容器不停止)
exit 可以退出當前的容器
docker commit -m "注釋" 容器名字或id 生成的鏡像的名字 將現有的容器生成新的鏡像保存在本地倉庫
~~~
docker網絡映射
端口映射
\-P 隨機映射
\-p 主機端口:容器端口
~~~
docker run -it -d --name 名字 -p 主機端口:容器端口 容器名
~~~
數據卷
~~~
docker run -it -d --name 名字 -v 宿主機目錄:容器目錄 容器名
~~~
數據卷容器
~~~
docker run -it -d --name 名字 --volumes-from 容器名
~~~
容器互聯
~~~
先啟動一個容器 docker run -d --name web1 -p 80:80 ningx
在啟動一個容器: docker run -d --name web2 --link web1 -p 8080:80 ningx
~~~
基礎的Dockerfile的編寫(文件名必須叫Dockerfile)
~~~
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 標簽名字 ./
~~~
上傳自己的鏡像到倉庫
* 1 docker login 可以加你的docker網址 默認是[https://hub.docker.com](https://hub.docker.com/)
* 2 給你的鏡像打標簽 docker tag 鏡像名/id 用戶名/存到遠端叫什么:tag標簽
* 3 docker push 第2步 鏡像名/id后邊跟的 名字
~~~
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 查看容器的訪問日志
~~~
- Python學習
- Python基礎
- Python初識
- 列表生成式,生成器,可迭代對象,迭代器詳解
- Python面向對象
- Python中的單例模式
- Python變量作用域、LEGB、閉包
- Python異常處理
- Python操作正則
- Python中的賦值與深淺拷貝
- Python自定義CLI三方庫
- Python并發編程
- Python之進程
- Python之線程
- Python之協程
- Python并發編程與IO模型
- Python網絡編程
- Python之socket網絡編程
- Django學習
- 反向解析
- Cookie和Session操作
- 文件上傳
- 緩存的配置和使用
- 信號
- FBV&&CBV&&中間件
- Django補充
- 用戶認證
- 分頁
- 自定義搜索組件
- Celery
- 搭建sentry平臺監控
- DRF學習
- drf概述
- Flask學習
- 項目拆分
- 三方模塊使用
- 爬蟲學習
- Http和Https區別
- 請求相關庫
- 解析相關庫
- 常見面試題
- 面試題
- 面試題解析
- 網絡原理
- 計算機網絡知識簡單介紹
- 詳解TCP三次握手、四次揮手及11種狀態
- 消息隊列和數據庫
- 消息隊列之RabbitMQ
- 數據庫之Redis
- 數據庫之初識MySQL
- 數據庫之MySQL進階
- 數據庫之MySQL補充
- 數據庫之Python操作MySQL
- Kafka常用命令
- Linux學習
- Linux基礎命令
- Git
- Git介紹
- Git基本配置及理論
- Git常用命令
- Docker
- Docker基本使用
- Docker常用命令
- Docker容器數據卷
- Dockerfile
- Docker網絡原理
- docker-compose
- Docker Swarm
- HTML
- CSS
- JS
- VUE