此处将为大家介绍关于基于docker的详细内容,并且为您解答有关纯净centos系统打包centos7+python3的镜像的相关问题,此外,我们还将为您介绍关于CentOs6和Centos7安装do
此处将为大家介绍关于基于docker的详细内容,并且为您解答有关纯净centos系统打包centos7+python3的镜像的相关问题,此外,我们还将为您介绍关于CentOs6和Centos7安装docker、centos7 64bit 安装 docker 最新版教程(Centos7 下安装 Docker Engine)、centos7 下 基于docker搭建java/tomcat (方式一)、Centos7 系统下 Docker ce 的安装及镜像加速的有用信息。
本文目录一览:- 基于docker(纯净centos系统)打包centos7+python3的镜像(docker centos基础镜像)
- CentOs6和Centos7安装docker
- centos7 64bit 安装 docker 最新版教程(Centos7 下安装 Docker Engine)
- centos7 下 基于docker搭建java/tomcat (方式一)
- Centos7 系统下 Docker ce 的安装及镜像加速
基于docker(纯净centos系统)打包centos7+python3的镜像(docker centos基础镜像)
基于docker(纯净centos系统)打包centos7+python3的镜像 和 如何在centos7部署python3环境
一、下载centos镜像
1、搜索centos镜像
docker search centos1
截图展示:
2、下载
docker pull docker.io/centos1
截图展示:
3、查看已下载的centos纯净系统
docker images1
截图展示:
二、创建容器并运行镜像
docker run -dit --name='centos_py3' 67fa590cfc1c /bin/bash 查看所有容器:docker ps -a 12
截图展示:
三、进入centos_py3容器并部署python3环境
1、进入centos_py3容器
docker exec -it centos_py3 /bin/bash1
截图展示:
2、安装依赖包(最后显示 Complete! 表示安装成功)
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc* make -y1
截图展示:
wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xz1
注意:容器环境为纯净版本,wget命令默认没有安装,需要 yum install wget -y 进行安装
注意:python安装包安装路径,本次安装路径为 /opt
截图展示:
4、 解压python安装包
tar -Jxvf Python-3.5.2.tar.xz1
截图展示:
5、配置安装路径(切入到解压目录下操作)
./configure prefix=/usr/local/python31
截图展示:
6、编译安装(在解压目录下操作)
make && make install1
截图展示:
如果安装的是python3.7
执行make 报错
“ImportError: No module named '_ctypes'” 缺少依赖包 yum -y install gcc kernel-devel kenel-headers make bzip2 yum -y install gcc gcc-c++ zlib zlib-devel libffi-devel 重新编译执行 make123456
7、检测是否安装成功
截图展示:
需要将python3的执行程序 连接到根下的bin目录 但是跟下的bin目录指向的是/usr/bin 所以我们将python3的执行文件链接到/usr/bin下就可以了
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip312
截图展示:
四、将配置好环境的容器打包成镜像
1、退出容器
查看容器信息
打包前docker的镜像
2、打包容器为镜像
docker commit -m ’描述’ -a ’作者’ 容器名 镜像名:标签名1
可以发现镜像列表中多了一个自己创建的镜像
五、使用自己打包的镜像创建沙箱环境
创建一个容器测试一下打包后的centos_py3镜像是否好用:
docker run -idt --name='ceshi' 08723a7d9172 /bin/bash1
进入容器:
docker exec -it ceshi /bin/bash1
python3环境可以正常运行
六、镜像的使用
1、我可以将镜像打包到本地
格式:docker save -o 压缩后的文件名.Tar 镜像名 (注意你的路径)
docker save -o centos_py3.tar centos_py31
centos_py3.tar 就是我们打包的的镜像
2、使用tar包的镜像
格式:docker load < tar包的路径(注意路径)
docker load < centos_py31
CentOs6和Centos7安装docker
Centos6安装的时候是按照网上的步骤,
yum install -y epel-release
yum install -y docker -io
service docker start
失败了,说是未被识别的服务,接下来
yum remove docker
yum remove docker-io
vi /etc/yum.repos.d/docker.repo
放入下面的内容
yum remove docker
yum remove docker-selinux
vi /etc/yum.repos.d/docker.repo
---------------------------分割线---------------------------
但是会报这样的错
[root@localhost ~]# service docker start
Redirecting to /bin/systemctl start docker.service
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details
我感觉应该是没有卸载干净,我是把虚拟机删除重新导入,按照上面的方式安装成功(如下):
vi /etc/yum.repos.d/docker.repo
放入下面的内容
centos7 64bit 安装 docker 最新版教程(Centos7 下安装 Docker Engine)
一。先决条件
首选需要一个 64 位操作系统和 3.10 或者更版本的内核。
查看当前内核版本:
?
1 2 |
$ uname -r 3.10.0-229.el7.x86_64 |
二.yum 安装 Docker Engine
安装 Docker Engine 有两种方式,我们先选择 yum 安装,并且 Docker 官方提供了 yum 源。
1. 使用普通用户 sudo 或者 root 登录到你的服务器,更新 yum,确保你的软件都是最新的
?
1 |
$ yum update |
2. 添加 Docker 的 yum 源
?
1 2 3 4 5 67 8 |
$ sudo tee /etc/yum.repos.d/docker.repo <<-''EOF'' [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF |
3. 安装 Docker 软件包
?
1 |
$ yum install docker-engine |
4. 设置 Docker 服务开机自启
?
1 |
$ systemctl enable docker.service |
5. 启动 Docker 服务
?
1 |
$ systemctl start docker |
6. 验证 Docker 是否安装成功
?
1 |
$ docker run --rm hello-world |
至此:docker 最新版已经安装完成,下面我们进行生产环境镜像的创建,使用 dockerfile
dockerfile (白话其实就是一个脚本,把一个纯镜像按照所需应用或者环境每个操作集成到一个文件执行安装的过程,类似于 linux 的 shell.)
走世界自由行环境需求(tomcat+jdk)
#以下是我们采用纯净 centos,之后安装所需环境依赖的应用(tomcat+jdk)
FROM centos
#以下是我们声明的维护人或者叫做作者
MAINTAINER locutus "zoushijie"
# OS 环境配置
RUN yum install -y wget
# 安装 JDK
RUN mkdir /opt/jdk
RUN wget -P /opt/jdk/ http://zsj-linux.oss-cn-hangzhou.aliyuncs.com/yunwei/jdk-8u162-linux-x64.tar.gz
RUN tar -zxvf /opt/jdk/jdk-8u162-linux-x64.tar.gz -C /opt/jdk && rm -rf /opt/jdk/jdk-8u162-linux-x64.tar.gz
# 安装 tomcat
RUN mkdir /opt/tomcat
RUN wget -P /opt/tomcat http://45.77.240.64/apache-tomcat-8.0.47.tar.gz
RUN tar -zxvf /opt/tomcat/apache-tomcat-8.0.47.tar.gz -C /opt/tomcat && rm -rf /opt/tomcat/apache-tomcat-8.0.47.tar.gz
#设置环境变量
ENV JAVA_HOME /opt/jdk/jdk1.8.0_162
ENV CATALINA_HOME /opt/tomcat/apache-tomcat-8.0.47
ENV PATH $PATH:$JAVA_HOME/bin
ENV CLASSPATH .:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#打包项目并拷贝到 tomcat webapps 目录
RUN mkdir /opt/webapp
ADD ./ /opt/webapp
RUN cd /opt/webapp && cp /opt/webapp/war/eureka-server.war /opt/tomcat/apache-tomcat-8.0.47/webapps/
#开启内部服务端口
EXPOSE 8080
#启动 tomcat 服务器
CMD ["./opt/tomcat/apache-tomcat-8.0.47/bin/catalina.sh","run"] && tail -f /opt/tomcat/apache-tomcat-8.0.47/logs/catalina.out
此为没有修改默认目录容器,下面我们进行修改默认访问目录操作
查看正在运行的容器:docker ps -l
之后进入容器:docker exec -it dd46f73e366e /bin/bash
进入 tomcat 修改 server.xml 文件,添加对应微服务名称:<Context path=""docBase=" 微服务名称 "debug="0"reloadable="true" />
之后要保证容器运行的状态下退出交互界面:Ctrl+p+q,我们可以看到容器仍在运行,下面我们保存一下刚才修改的容器,并以微服务命名
docker commit dd4 eureka-server
查看新生成的镜像:出现了名为 eureka-server 的镜像
删除本地不用的镜像。docker rmi -f <镜像 id>,首先先停止运行中的容器,docker stop < 镜像 id>,停止运行中的容器,要从 docker ps 里查看 id. 不是在 docker images 里查看。
centos7 下 基于docker搭建java/tomcat (方式一)
centos7 下 基于docker搭建java/tomcat (方式一)
2017年07月27日 16:45:53 阅读数:1381 标签: docker 更多
个人分类: docker
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011382384/article/details/76208821
CentOS 7 中 Docker 的安装
Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。因此想要安装 docker,只需要运行下面的 yum 命令(安装时间挺长。。。):
[root@localhost ~]# yum install docker
启动 Docker 服务
安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:
[root@localhost ~]# service docker start
[root@localhost ~]# chkconfig docker on
制作容器
镜像下载到本地以后,就可以使用Docker运行,通过下面的命令参数启动容器:
docker run <相关参数> <镜像 ID> <初始命令>
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中 (这个目录和本地是交互的,目录下的文件在容器和本地上是可以相互看见的)
格式:-v <宿主机目录>:<容器目录>
- 1
- 2
- 3
- 4
- 5
- 6
我的相关程序都在宿主机器的/data/software/目录下,并且想把它挂载到容器的相同目录下:
[root@localhost ~]# sudo docker run -i -t -v /data/software/:/data/software/ 29ca665c0a12 /bin/bash
安装jdk/tomcat
创建好容器自动进入了容器 然后安装JDK和Tomcat等(这步最重要的就是配置tomcat环境,配置不好重启容器不能运行)
可以用命令【docker cp 文件名称 容器id : 容器下的路径】把相应的安装文件复制到容器中
- 1
- 2
- 3
安装相关的JDK等程序,这里全部安装到/data/目录:
[root@localhost ~]# docker cp jdk-8u77-linux-x64.tar.gz 29ca665c0a12:/data/
root@29ca665c0a12:/data# tar -zxvf jdk-8u77-linux-x64.tar.gz
root@29ca665c0a12:/data# mv jdk1.8.0_77 jdk[root@localhost ~]# docker cp apache-tomcat-7.0.68.zip 29ca665c0a12:/data/
root@29ca665c0a12:/data# unzip apache-tomcat-7.0.68.zip
root@29ca665c0a12:/data# mv apache-tomcat-7.0.68 tomcat
附:docker容器中安装vim(apt-get install
)
root@29ca665c0a12:/data# apt-get update
root@29ca665c0a12:/data# apt-get install -y vim
配置环境变量
root@29ca665c0a12:/data# vim /etc/profile
添加下面的配置:
export HISTTIMEFORMAT
JAVA_HOME=/data/jdk
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
export CATALINA_HOME=/data/tomcat
export CATALINA_BASE=/data/tomcat
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
保存并退出,设置立即生效:
root@29ca665c0a12:/data# source /etc/profile
Tomcat 启动脚本
创建start.sh启动脚本
root@29ca665c0a12:/data# vim /data/start.sh
添加以下内容:
#!/bin/bash
# Export environment variable
source /etc/profile
# Start tomcat
bash /data/tomcat/bin/catalina.sh run
- 1
- 2
- 3
- 4
- 5
添加可执行权限:
root@29ca665c0a12:/data# chmod u+x /data/start.sh
然后退出 容器
root@29ca665c0a12:/data# exit
#查看容器
docker ps #查看运行的容器
docker ps -a #查看 所有容器
docker start 容器Id #启动容器
docker restart 容器id #重启
docker stop 容器id #停止容器
docker rm 容器id #删除容器
docker rmi 镜像id #删除镜像
docker ps 还看到容器启动成功 说明你成功了
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
提交镜像
提交容器 创建镜像 docker commit 容器ID 镜像名称
[root@localhost ~]# sudo docker commit 39b2cf60a4c1 tomcat/java
查看是否创建镜像
[root@localhost ~]# sudo docker images
如果看到 tomcat/java 这个镜像存在说明你成功了
docker inspect可以查看新创建的镜像的详细信息:
[root@localhost ~]# sudo docker inspect tomcat/java
运行新创建的容器
( -p 18080:8080 是把 服务器的端口18080映射到容器端口8080 ,javaweb 命名容器名称, /data/start.sh 启动文件)
[root@localhost ~]# docker run -d -p 18080:8080 –name javaweb javazyl /data/start.sh
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 18080 端口,
这样就向外界暴露了 18080 端口可通过 Docker 网桥来访问容器内部的 8080 端口了。
- 1
- 2
异常:
启动一个有 nat 映射端口的容器时,iptables 报 No chain/target/match by that name
找到系统的/etc/sysconfig/iptables ,如果没有用以下命令保存一下,然后查看里边的内容
[root@localhost ~]# iptables-save > /etc/sysconfig/iptables
博主是没有iptables这个文件,直接执行上面命令就创建了,重新启动后就成功了(同时关掉了firewalld)
然后访问 http://192.168.164.129:18080/
详细请看这篇帖子
Centos7 系统下 Docker ce 的安装及镜像加速
一、使用 yum 源安装
1、安装依赖包
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2、添加国内 Docker 源 # 为了能更快找到并下载 docker ce
$ sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、安装 Docker CE
更新 yum 软件源缓存,并安装 docker-ce
$ sudo yum makecache fast #更新 yum 软件源缓存
$ sudo yum install docker-ce #安装 docker-ce
二、调优工作
1、启动 Docker CE
$ sudo systemctl enable docker #开机启动 docker
$ sudo systemctl start docker #启动 docker
2、建立 docker 用户组
$ sudo groupadd docker #建立 docker 组
$ sudo usermod -aG docker $USER #将当前用户加入 docker 组
3、添加内核参数
默认配置下,如果在 CentOS 使用 Docker CE 看到下面的这些警告信息:
WARNING:bridge-nf-call-iptables is disabled
WARNING:bridge-nf-call-ip6tables is disabled
请添加内核配置参数以启用这些功能。
$ sudo tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
然后重新加载 sysctl.conf 即可
$ sudo sysctl -p
4、国内镜像加速
$ sudo vim /etc/systemd/system/multi-user.target.wants/docker.service
找到 ExecStart= 这一行,在这行最后添加加速器地址 --registry-mirror=<加速器地址>,如:
ExecStart=/usr/bin/dockerd --registry-mirror=https://jxus37ad.mirror.aliyuncs.com #使用阿里云加速
$ sudo systemctl daemon-reload #重新加载 daemon
$ sudo systemctl restart docker # 重启 docker
5、验证 docker ce 搭建和加速成功
$ sudo docker run --name webserver -d -p 81:80 nginx #docker 从仓库 pull 下 nginx 镜像并命名为 webserver,此镜像以后台模式,81 端口映射宿主机 80 端口运行
#如果下载速度较慢,可能国内镜像加速未成功。
$ firefox #打开 firefox 浏览器
输入 localhost:81 # 看到 nginx 欢迎界面表示搭建成功
转载自:http://blog.51cto.com/bestlope/1977059
今天关于基于docker和纯净centos系统打包centos7+python3的镜像的讲解已经结束,谢谢您的阅读,如果想了解更多关于CentOs6和Centos7安装docker、centos7 64bit 安装 docker 最新版教程(Centos7 下安装 Docker Engine)、centos7 下 基于docker搭建java/tomcat (方式一)、Centos7 系统下 Docker ce 的安装及镜像加速的相关知识,请在本站搜索。
本文标签: