docker本地搭建服务实验指导-刘云伟

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

一、docker简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker特性:
构建标准化的运行环境,现有的方案大多是在一个baseOS上运行一套puppet/chef,或者一个image文件,其缺点是前者需要base OS许多前提条件,后者几乎不可以修改(因为copy on write 的文件格式在运行时rootfs是read only的)。并且后者文件体积大,环境管理和版本控制本身也是一个问题。

PaaS环境是不言而喻的,其设计之初和dotcloud的案例都是将其作为PaaS产品的环境基础。因为其标准化构建方法(buildfile)和良好的REST API,自动化测试和持续集成/部署能够很好的集成进来。因为LXC轻量级的特点,其启动快,而且docker能够只加载每个container变化的部分,这样资源占用小,能够在单机环境下与KVM之类的虚拟化方案相比能够更加快速和占用更少资源。

Docker并不是全能的,设计之初也不是KVM之类虚拟化手段的替代品,简单总结几点:
Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用。
LXC是基于cgroup等linux kernel功能的,因此container的guest系统只能是linux base的。

隔离性相比KVM之类的虚拟化方案还是有些欠缺,所有container公用一部分的运行库。
网络管理相对简单,主要是基于namespace隔离。cgroup的cpu和cpuset提供的cpu功能相比KVM的等虚拟化方案相比难以度量(所以dotcloud主要是按内存收费)。Docker对disk的管理比较有限。container随着用户进程的停止而销毁,container中的log等用户数据不便收集。

Docker五大优势:持续集成、版本控制、可移植性、隔离性和安全性

二、docker安装前准备

(一) 安装包准备

安装操作系统CentOS7
修改IP地址
用WINSCO连接
# mkdir -r /root/docker/Packages
(将C盘KVM文件夹里面的nginx_docker依赖包文件夹内的所有文件都复制到到/root/docker/Packages中)
配置yum源(KVM文档)
安装VSFTP服务
  1. 安装vsftpd
    yum install –y vsftp

  2. 配置vsftpd
    vi /etc/vsftpd/vsftpd.conf
    添加一行 anon_root=/media/CentOS(配置yum源挂载光盘的目录) 匿名用户访问目录,这里需要为软件仓库所在目录
    添加一行 pasv_enable=YES 被动模式

  3. 修改FTP匿名用户目录权限
    chmod -R 755 /root/

  4. 启动vsftpd服务
    systemctl start vsftpd
    systemctl enable vsftpd

  5. 关闭防火墙:
    临时关闭防火墙
    setenforce 0
    Systemctl stop firewalld
    永久关闭防火墙
    vi /etc/selinux/config
    SELINUX=disabled
    这里测试windows主机是否能够访问Ftp服务

(二) 创建属于docker的本地yum源

mkdir -r /root/docker/Packages(将以上所需安装包放到/root/docker/Packages中)
vi /etc/yum.repos.d/docker.repo
[docker]
name=docker
baseurl=file:///root/docker
enabled=1
gpgcheck=0
createrepo /root/docker/

docker库创建完成

三、docker安装与启动

(一) 安装

 yum -y install docker-ce

(二) 启动

systemctl start docker.service
systemctl enable docker.service

可以使用ifconfig命令查看是否已经出现docker的网卡
ifconfig
ifconfig

(三) 载入镜像

 docker load < centos7.tar

在这里插入图片描述

(四) 交互式启动容器

docker run -it 4cbf48630b46 bash		//启动容器  i:交互  t:分配终端

4cbf48630b46 根据’docker images’命令查看)
进入容器后使用可’exit’命令退出
在这里插入图片描述

(五) 其他docker常用命令

container id查看方法

docker ps -l4

在这里插入图片描述

使用exec进入容器
docker exec -it [container id] bash
例如:# docker exec -it 056201367c1d bash

使用attach从后台切换到前台,再切换回后台需要先ctrl+p再ctrl+q
docker attach [container id]
例如:# docker attach 056201367c1d

查看docker运行日志
docker logs [container id]

在这里插入图片描述
与刚刚操作一致

停止容器
docker stop [container id]
启动后台容器
docker start [container id]
杀死进程
docker kill [container id]
删除所有未运行的容器
docker ps -a -q | xargs docker rm
批量停止容器
docker ps | awk '{print $1}' | grep -v CONTAINER | while read line;do docker stop $line; done
批量开启容器
docker ps | awk '{print $1}' | grep -v CONTAINER | while read line;do docker start $line; done
批量删除容器
for line in `docker ps -a | awk '{print $1}' | grep -v CONTAINER`;do docker kill $line;docker rm $line;done

四、创建nginx docker容器

(一) 为docker创建局域网yum源

因笔者所处环境为无网络环境,所以笔者使用的是局域网yum源
首先需要创建一个使用局域网yum源的docker镜像

mkdir -pv /docker/yum-wlan
cd /docker/yum-wlan

为编写dockerfile的准备工作

vi /docker/yum-wlan /wlan.repo

在这里插入图片描述

vi /docker/yum-wlan/yum-wlan-conf.sh		//编写配置局域网yum源脚本

编写dockerfile文件

vim /docker/yum-wlan/dockerfile 

在这里插入图片描述

(二) 创建使用局域网yum源的镜像

cd /docker/yum-wlan
docker build -t yum-wlan .	//注意最后有个点,指使用当前路径的dockerfile通过’docker images’命令查看刚刚生成的 yum-wlan 镜像

在这里插入图片描述
如果需要搭建其他服务也可直接使用该yum-wlan镜像

(三) 创建安装了nginx的镜像

以刚刚制作的局域网yum源镜像的基础上创建nginx的docker容器

 mkdir -pv /docker/nginx
 cd /docker/nginx/

为编写dockerfile的准备工作

 vi /docker/nginx/nginx-install.sh    //编写安装nginx的脚本

在这里插入图片描述
编写dockerfile文件

vim /docker/nginx/dockerfile 

在这里插入图片描述
容器启动时执行的那条入口命令一旦结束了,容器也会结束。如果启动命令单纯是以后台守护(daemon)模式启动nginx,那么启动命令会立即结束,容器也会立即结束。
其实只要在任何命令之后加一句 && cat,就会让这条命令卡在前台而不会结束,不是非得用daemon off

dockerfile的注意事项:

FROM #代表自定义的镜像基于centos7镜像的ID 4cbf48630b46,通过docker images命令获取
MAINTAINER #代表维护者信息,姓名与邮箱
COPY #把宿主系统的文件拷贝到镜像里面
RUN #在镜像里面运行命令
#安装完后记录删除源码包等,预防镜像过大 可以在分好后加一个 \rm -rf /usr/local/src/* 但是也就不能再次编译了。谨慎使用吧

使用dockerfile构建nginx镜像

cd /docker/nginx
docker build -t nginx_docker .		//注意最后有个点

在这里插入图片描述
创建成功

(四) 创建容器并启动服务

启动容器进行测试,由于nginx是前台永久运行的,可直接启动nginx进行测试
 docker run -d nginx_docker bash -c '/usr/local/nginx/sbin/nginx'
-d:后台运行指定镜像
-c:执行指定命令,示例为启动nginx服务

在这里插入图片描述

五、测试检验

(一) docker内测试网页

在这里插入图片描述

(二) 客户端测试网页

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值