使用Docker制作一個CentOS7容器並安裝python3


1.下載centos鏡像

docker pull centos:7

2.創建並啟動容器

docker run -d --name centos7 --privileged=true -p 10022:22 -p 10080:80 -h testhost -v /home/fd/container/centos7:/home/centos7 centos:7 /usr/sbin/init

參數說明:

-d					后台運行方式
–-name				創建的容器名,方便啟動、關閉、重啟、刪除容器等操作
–privileged=true	加上之后容器內部權限更多,不會出現權限問題
-p 10022:22 -p 10080:80	指定端口映射,可同時放通多個端口
-h testhost		指定容器主機名
-v /home/fd/container/centos7:/home/centos7	宿主機目錄映射到容器內部目錄
centos:7			本地centos鏡像版本/或者鏡像id
/usr/sbin/init		啟動方式

3.進入容器

docker exec -it centos7 /bin/bash

4.在容器內部操作

先初始化 yum

yum update

安裝 net-tools

yum -y install net-tools

查看網絡測試

ifconfig

安裝 vim 編輯器

yum -y install vim

安裝 wget 下載使用

yum -y install wget

配置容器 yum更新源為國內ali yum源
此處也寫一下,創建一個備份目錄,把之前的 repo 移動到備份目錄先備份下

cd /etc/yum.repo.d/
mkdir repos.bak
mv CentOS-* ./repos.bak/

然后如果容器內部能夠連上網絡,那就一條命令

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

如果容器內部連不上網絡,那就如下操作

vim CentOS-Base-ali.repo
# 按照下面的格式來,建議直接CV

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#released updates 
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

換完yum更新源,一定要執行

yum clean all
yum makecache # 也可以是 yum makecache fast ,更快一些
yum update

然后安裝基本軟件

yum -y install systemd && \
yum -y install firewalld && \
yum -y install openssh openssh-server openssh-clients &&\
yum install -y iproute

5.在容器內安裝python3

5.1.不要刪除自帶的python2.7,否則會出問題,因為centos許多軟件需要依賴系統自帶python

5.2.安裝依賴工具 (安裝這些模塊都是為了成功編譯安裝python3,防止出現各種異常)

yum install -y make wget yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel mysql-devel gcc gcc-devel python-devel

5.3.下載

wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz

5.4.解壓

 tar -zxvf Python-3.6.5.tgz

5.5.移動至規范的放軟件的目錄下

mv Python-3.6.5 /usr/local

5.6.安裝

cd /usr/local/Python-3.6.5/    
 ./configure
make
make install

注意:./configure命令沒有指定安裝路徑,則默認安裝在/usr/local/bin,如果指定安裝路徑,則命令為./configure --prefix=/usr/local/python3。

如果這里指定安裝路徑的話,安裝完成后,不能直接使用python3啟動,需要創建軟連接。

ln -s /usr/local/python3/bin/python3 /usr/bin/python3  # 創建軟連接
ls -l /usr/bin/python3  # 查看創建軟連接

同理,需要創建pip3的軟連接

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3  # 創建軟連接
ls -l /usr/bin/pip3  # 查看創建軟連接

6.打包容器

打包容器成鏡像

docker commit -a "edwin" -m "Centos7.6 platform for building and running Python 3.8 applications" -p 95096da60a6e username/centos7.6-python3.8:1.0.0 #命令中的 username 請替換為你的 Docker 賬號用戶名

參數說明
-a :提交的鏡像作者;
-c :使用Dockerfile指令來創建鏡像;
-m :提交時的說明文字;
-p :在commit時,將容器暫停。

image-20210409165515106

7.上傳到鏡像公共倉庫

7.1.上傳到鏡像公共倉庫前提,需要先登陸:

docker login

輸入用戶名與密碼登陸。

7.2.推送到公共倉庫

docker push username/centos7.6-python3.8 # 推送到公共倉庫


免責聲明!

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



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