通过部署python项目 学习 docker 使用

安装

1、Docker 要求 CentOS 系统的内核版本不低于 3.10,通过 uname -r 命令查看你当前的内核版本

uname -r

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。(温馨提示:新环境或测试环境可随意操作,生产环境酌情慎重更新)

sudo yum update

3、卸载旧版本(如果安装过旧版本的话)

sudo yum remove docker docker-common docker-selinux docker-engine

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

5、设置yum源(选择其中一个)

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo(中央仓库)

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)

6、可以查看所有仓库中所有docker版本,并选择特定版本安装

 yum list docker-ce --showduplicates | sort -r

7、安装docker

sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
sudo yum install <FQPN>  # 例如:sudo yum install docker-ce-17.12.0.ce

 

8、启动并加入开机启动

sudo systemctl start docker
sudo systemctl enable docker

9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

docker version

10、使用加速镜像

编辑/etc/docker/daemon.json文件添加镜像信息:

vim /etc/docker/daemon.json

添加内容如下:

#使用网易镜像
{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

基本操作

镜像

1、查找 Docker Hub 上的 python 镜像

docker search ImageName
例:
docker search python

2、拉取镜像

这里我们拉取官方的镜像,标签为3.6:

docker pull NAME[:TAG]
#例如
docker pull python:3.6

 3、查看本地镜像列表

等待我们的python镜像文件下载好后执行下面命令可以看到我们下载好的镜像文件

docker images

 4、删除某个镜像

docker rmi id/name 

容器

将镜像跑起来就成为了容器(暂时可以这样理解)。其中,每条命令的参数(如 -it)可以自行百度,这里只对常用操作简要说明

1、创建容器

docker create -it centos #创建一个基于centos镜像的容器

2、查看当前正在运行的容器

docker ps 

 查看所有容器的状态

docker ps -a

2、启动/重启/关闭/强制停止 容器

docker start/restart/stop/kill  CONTAINERID 

3、新建并启动

docker run -it --name william python:3.6 /bin/bash  
# python:3.6为镜像名和标签
# 命名为william且运行,然后以伪终端交互式方式进入容器,运行bash

4、进入容器(一般使用第二个)

docker attach CONTAINERID #通过容器名来进入容器 (使用exit退出后容器也跟着停止运行)
docker exec -ti CONTAINERID /bin/bash #启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)

5、删除容器

docker rm container_id

6、容器迁移,先导出容器,在新的环境内导入成镜像

我们使用容器的一个重要原因,就是运行环境的迁移,直接将容器导入导出就可以了。容器迁移,先导出容器,在导入成镜像即可。

# A环境 导出容器
sudo docker export container_id | gzip > image_name.tar.gz
# B环境 导入成镜像
zcat image_name.tar.gz | sudo docker import - image_name

网络

有些对外服务的容器,比如tomcat,mysql等,需要开放端口给外部访问。
端口开放通过启动参数 -p 来指定。-p 宿主机端口:容器端口。
一般来说,为了方便管理,会设置宿主机端口和容器端口保持一致,比如web端口:-p 80:80

docker run -it -P --name william_tomcat tomcat /bin/bash
# 使用 -P (大写) 参数时,会将容器内端口映射到主机的随机端口上
docker run -it -p 80:8080 --name william_tomcat tomcat /bin/bash
# 使用 -p (小写) 参数时,冒号(:)左边为主机端口,右边为容器端口 即将容器的8080端口映射到主机的80端口上

此时,通过ip:80就可以访问到容器里的tomcat了 

数据卷

一般情况下,容器只是运行环境,不应该承担数据存储的角色,如果有数据存储的需求或者需要读取系统文件,就需要将系统的某个文件夹挂在到容器中,这样容器既能读取系统文件,也能将运行时生成的文件写到系统中保存起来,最典型的就是MySQL之类的数据库容器,如果不将数据保存起来,随着容器的消失,数据也跟着消失了。

数据卷通过启动参数 -v 来指定。
-v后面的映射关系是"宿主机文件/目录:容器里对应的文件/目录",其中,宿主机上的文件/目录是要提前存在的,容器里对应的文件/目录会自动创建。
因此,为了方便管理,最好是宿主机路径与容器路径保持一致。

docker run -it -v /home/william/data:/home/william/data --name william_python python:3.6 /bin/bash
# 将/home/william/data映射到容器 /home/william/data 上
docker run -it -v /home/william/data:/home/william/data:ro --name william_python python:3.6 /bin/bash
# 加上 :ro 参数 使容器/home/william/data 目录为只读
docker run -it -volumes-from william_python --name william_python2 python:3.6 /bin/bash

# william_python2容器或william_python容器任何一方对/home/william/data 目录的修改都会互相看到

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
# 1、下载rpm源文件 * rpm下载不了的文件可以到[rpm官方](http://rpm.pbone.net/)进行下载 # 2、执行rpm文件 * 1、以下的rpm文件是有依赖,需要安装顺序进行执行. * 2、执行policycoreutils-python-2.5-29.el7.x86_64.rpm发现报 错误:依赖检测失败: policycoreutils = 2.5-22.el7 被 policycoreutils-python-2.5-22.el7.x86_64 需要 去rpm官方网找了一个`policycoreutils-python-2.5-29.el7_6.1.x86_64.rpm`最新的安装包执行安装 * 3、python-kitchen-1.1.1-5.el7.noarch.rpm可以不需要安装 ``` rpm -ivh libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm rpm -ivh audit-libs-python-2.8.4-4.el7.x86_64.rpm rpm -ivh libcgroup-0.41-20.el7.x86_64.rpm rpm -ivh libsemanage-python-2.5-14.el7.x86_64.rpm rpm -ivh checkpolicy-2.5-8.el7.x86_64.rpm rpm -ivh python-IPy-0.75-6.el7.noarch.rpm rpm -ivh setools-libs-3.3.8-4.el7.x86_64.rpm rpm -ivh policycoreutils-python-2.5-29.el7_6.1.x86_64.rpm rpm -ivh container-selinux-2.74-1.el7.noarch.rpm rpm -ivh libseccomp-2.3.1-3.el7.x86_64.rpm rpm -ivh containerd.io-1.2.0-3.el7.x86_64.rpm rpm -ivh docker-ce-cli-18.09.0-3.el7.x86_64.rpm rpm -ivh docker-ce-18.09.0-3.el7.x86_64.rpm ``` # 3、启动docker ``` systemctl daemon-reload && systemctl restart docker ``` # 4、设置开机启动 * Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. ``` systemctl enable docker.service ``` # 5、验证docker ``` docker version ``` # 参考文章 * [CentOS 7.5离线安装Docker 18.09.3软件](https://jingyan.baidu.com/article/fb48e8becf31a16e632e145f.html)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值