安裝 Docker Engine-Community
使用 Docker 倉(cāng)庫(kù)進(jìn)行安裝
在新主機(jī)上首次安裝 Docker Engine-Community 之前,需要設(shè)置 Docker 倉(cāng)庫(kù)。之后振坚,您可以從倉(cāng)庫(kù)安裝和更新 Docker延旧。
設(shè)置倉(cāng)庫(kù)
安裝所需的軟件包熏挎。yum-utils 提供了 yum-config-manager ,并且 device mapper 存儲(chǔ)驅(qū)動(dòng)程序需要 device-mapper-persistent-data 和 lvm2。
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
使用以下命令來(lái)設(shè)置穩(wěn)定的倉(cāng)庫(kù)。
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安裝 Docker Engine-Community
安裝最新版本的 Docker Engine-Community 和 containerd羽历,或者轉(zhuǎn)到下一步安裝特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io
如果提示您接受 GPG 密鑰,請(qǐng)選是淡喜。
啟動(dòng) Docker秕磷。
$ sudo systemctl start docker
構(gòu)建python3鏡像
一.在Dockerfile/Dockerfile 中寫(xiě)入以下代碼
注意:Dockerfile目錄中最好不要有多余的文件,也會(huì)發(fā)送給docker引擎,速度會(huì)變慢
##############################################
# 基于centos7構(gòu)建python3運(yùn)行環(huán)境
# 構(gòu)建命令: 在Dockerfile文件目錄下執(zhí)行 docker build -t python:37 .
# 容器啟動(dòng)命令: docker run -itd --name python --restart always --privileged=true -v /root/dockers/python:/root/python -v /root/dockers/python/cron:/var/spool/cron python:37 /usr/sbin/init
# 進(jìn)入容器:docker exec -it python /bin/bash
##############################################
FROM centos:7.6.1810
MAINTAINER mioshu # 指定作者信息
RUN set -ex \
# 預(yù)安裝所需組件
&& yum install -y wget tar libffi-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make initscripts \
&& wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz \
&& tar -zxvf Python-3.7.0.tgz \
&& cd Python-3.7.0 \
&& ./configure prefix=/usr/local/python3 \
&& make \
&& make install \
&& make clean \
&& rm -rf /Python-3.7.0* \
&& yum install -y epel-release \
&& yum install -y python-pip
# 設(shè)置默認(rèn)為python3
RUN set -ex \
# 備份舊版本python
&& mv /usr/bin/python /usr/bin/python27 \
&& mv /usr/bin/pip /usr/bin/pip27 \
# 配置默認(rèn)為python3
&& ln -s /usr/local/python3/bin/python3.7 /usr/bin/python \
&& ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
# 修復(fù)因修改python版本導(dǎo)致yum失效問(wèn)題
RUN set -ex \
&& sed -i "s#/usr/bin/python#/usr/bin/python2.7#" /usr/bin/yum \
&& sed -i "s#/usr/bin/python#/usr/bin/python2.7#" /usr/libexec/urlgrabber-ext-down \
&& yum install -y deltarpm
# 基礎(chǔ)環(huán)境配置
RUN set -ex \
# 修改系統(tǒng)時(shí)區(qū)為東八區(qū)
&& rm -rf /etc/localtime \
&& ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& yum install -y vim \
# 安裝定時(shí)任務(wù)組件
&& yum -y install cronie
# 支持中文
RUN yum install kde-l10n-Chinese -y
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
# 更新pip版本
RUN pip install --upgrade pip
ENV LC_ALL zh_CN.UTF-8
二 dockerfile構(gòu)建命令:
在Dockerfile文件目錄下執(zhí)行
docker build -t python:37 .
- -t:指定鏡像名稱
三 啟動(dòng)容器
docker run -itd --name python --restart always --privileged=true -v /root/dockers/python:/root/python -v /root/dockers/python/cron:/var/spool/cron python:37 /usr/sbin/init
docker run 命令會(huì)創(chuàng)建一個(gè)名為python的容器
- -i:互交模式
- -t:終端模式
- -d:后臺(tái)啟動(dòng)
- --name: 容器名稱炼团,即后面的python
- -v:資源卷映射澎嚣,主機(jī)目錄、文件映射到容器目錄瘟芝、文件
四 進(jìn)入容器
docker exec -it python /bin/bash
五 導(dǎo)出容器
Ctrl + d 退出當(dāng)前容器后執(zhí)行下面語(yǔ)句
docker export python > python.tar
六易桃、導(dǎo)入容器
docker import python.tar python:3
通過(guò)export+import的方法創(chuàng)建鏡像不會(huì)保留鏡像歷史,可以縮小鏡像體積
七锌俱、push到hub
需要先到 https://hub.docker.com 注冊(cè)一個(gè)賬號(hào)
上傳完成后可以在任一主機(jī)上拉取鏡像:
docker pull vfrtgb158/python:3