安装docker
#查看版本
uname -r
#Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
#Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum -y install docker-io
service docker start
#yum下载的docker版本可能比较低
#方法1:
vim /usr/bin/yum-config-manager #确定使用的yum是py2版本
yum remove docker-io
参考: https://docs.docker.com/engine/installation/linux/docker-ce/centos/#install-docker-ce-1
systemctl start docker
#方法2
#下载最新的
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.12.0.ce-1.el7.centos.x86_64.rpm
升级内核步骤
一、安装elrepo的yum源--http:
rpm --import https:
#如果出现问题:curl: (60) SSL certificate problem: unable to get local issuer certificate
#wget http://mirror.centos.org/centos/6/os/x86_64/Packages/ca-certificates-2016.2.10-65.4.el6.noarch.rpm
#rpm2cpio ca-certificates-2016.2.10-65.4.el6.noarch.rpm | cpio -idmv
#cp -pi ./etc/pki/tls/certs/ca-bundle.* /etc/pki/tls/certs/
#yum reinstall ca-certificates
#yum reinstall openssl
#如果还是不行,直接不用rpm安装
#wget --no-check-certificate https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#rpm --import RPM-GPG-KEY-elrepo.org
rpm -Uvh http:
二、升级内核
#在yum的elrepo源中有ml和lt两种内核,其中ml(mainline)为最新版本的内核,lt为长期支持的内核。
#如果要安装ml内核,使用如下命令:
yum --enablerepo=elrepo-kernel -y install kernel-ml
#如果要安装lt内核,使用如下命令:
yum --enablerepo=elrepo-kernel -y install kernel-lt
三、修改grub.conf文件
vim /etc/grub.conf
default=0
docker相关操作
docker官方安装
docker search centos
#使用docker运行centos后输出,会自杀,因为docker认为没什么事情可以做了
docker pull centos /bin/echo "Hello world"
#docker build -t csphere/centos:7.1 .
#后台运行docker
docker run -dit centos
#查看容器列表
docker ps
docker ps -a
#进入容器
docker attach 44fc0f0582d9 # 使用了exit命令,容器就会退出后台运行
docker exec -it 44fc0f0582d9 /bin/sh #不会退出
#在宿主机器查看docker的cpu 内存使用状态
docker stats 44fc0f0582d9
构建一个容器
参考
vim Dockerfile
# 将官方 Python 运行时用作父镜像
FROM python:2.7-slim
# 将工作目录设置为 /app。指定RUN、CMD与ENTRYPOINT命令的工作目录
WORKDIR /app
# 将当前目录内容复制到位于 /app 中的容器中。复制文件指令。它有两个参数<source>和<destination>。destination是容器内的路径。source可以是URL或者是启动配置上下文中的一个文件
ADD . /app
# 安装 requirements.txt 中指定的任何所需软件包。在shell或者exec的环境下执行的命令
RUN pip install -r requirements.txt
# 使端口 80 可供此容器外的环境使用
EXPOSE 80
# 定义环境变量
ENV NAME World
# 在容器启动时运行 app.py。提供了容器默认的执行命令。 Dockerfile只允许使用一次CMD指令。 使用多个CMD会抵消之前所有的指令,只有最后一个指令生效。
CMD ["python", "app.py"]
vim requirements.txt
Flask
Redis
app.py
from flask import Flask
from redis import Redis, RedisError
import os
import socket
redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)
app = Flask(__name__)
@app.route("/")
def hello():
try:
visits = redis.incr("counter")
except RedisError:
visits = "<i>cannot connect to Redis, counter disabled</i>"
html = "<h3>Hello {name}!</h3>" \
"<b>Hostname:</b> {hostname}<br/>" \
"<b>Visits:</b> {visits}"
return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits)
if __name__ == "__main__":
app.run(host='0.0.0.0', port=80)
docker build -t friendlyhello .
#查看构建的镜像
docker images
#运行构建的镜像(将本机的4000映射到docker的80端口)
docker run -p