docker容器中配置python環境


docker中配置python環境

使用docker的好處

當我們在遷移python項目的時候,python環境是個讓人頭疼的問題,特別是用的庫特別多的時候,環境不匹配會導致各種問題發生。

用docker把python環境或者和項目一起打包就能很好解決這個問題。docker實際上就是一個輕量級別的虛擬機,我們可以把python環境部署到docker中,這樣就能隨時打包帶走,非常方便。

docker的基本概念

docker一般由三個部分組成,鏡像,倉庫和容器

  • 倉庫:存放鏡像的地方

  • 鏡像:環境模板,容器就由鏡像產生並且運行

  • 容器:根據鏡像生成的實際執行環境

docker的安裝與卸載

# 安裝
sudo yum install docker

# 啟動
sudo systemctl start docker

# 卸載 
sudo yum remove docker-ce
sudo rm -rf /var/lib/docker

docker修改鏡像源

在根目錄下有個叫daemon的json文件,上網找到國內鏡像源將其替換即可

# 重啟docker
sudo systemctl daemon-reload 
sudo systemctl restart docker

下載docker鏡像

使用python3的話,推薦使用miniconda3的鏡像

docker pull continuumio/miniconda3
docker run -i -t continuumio/miniconda3 /bin/bash

docker 容器的基本操作

# 查看本地有那些鏡像
sudo docker images

# 從鏡像啟動一個容器
sudo docker run -it image_name /bin/bash 

# 查看正在運行的容器
sudo docker ps

# 查看全部容器,包括已經停止的容器
sudo docker ps -a

# 啟動一個停止的容器
sudo docker start container_id

# 進入一個正在運行的容器
sudo docker exec -it container_id /bin/bash

# 重命名容器
sudo docker rename old_container_name  new_container_name

# 刪除容器
docker rm container_id

# 刪除鏡像
docker rmi image_id

# 拷貝宿主機的文件到docker容器
docker cp [OPTIONS] dest_path container:src_path

# 拷貝docker容器中的文件到宿主機
docker cp [OPTIONS] container:src_path dest_path

docker容器的導入和導出

docker容器最方便的就是打包導出,和導入,能夠方便地進行環境遷移,一個容器打包導出后可以在另一台機器的docker中解壓導入成一個鏡像。

# 容器遷移,先導出容器,在導入成鏡像
# 導出容器
sudo docker export container_id | gzip > image_name.tar.gz
# 導入成鏡像
zcat image_name.tar.gz | sudo docker import - image_name

數據卷掛載

一般情況下,容器只是運行環境,不應該承擔數據存儲的角色,如果有數據存儲的需求或者需要讀取系統文件,就需要將系統的某個文件夾掛在到容器中,這樣容器既能讀取系統文件,也能將運行時生成的文件寫到系統中保存起來。如果不將數據保存起來,隨着容器的消失,數據也跟着消失了。

數據卷通過啟動參數 -v 來指定。
-v后面的映射關系是"宿主機文件/目錄:容器里對應的文件/目錄",其中,宿主機上的文件/目錄是要提前存在的,容器里對應的文件/目錄會自動創建。

docker run -it -v /xxx/xxx:/xxx/xxx 容器名或id /bin/bash

為了方便管理,推薦將容器里的目錄設置成和宿主機一致

開放端口

有些對外服務的容器,比如tomcat,mysql等,需要開放端口給外部訪問。

端口開放通過啟動參數 -p 來指定。
-p 宿主機端口:容器端口
一般來說,為了方便管理,會設置宿主機端口和容器端口保持一致.
比如web端口:-p 80:80

參考博客: https://zhuanlan.zhihu.com/p/38634164


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM