多字警告!!!本文没什么图片,都是一些步骤以文字的方式写出来,如果没什么耐心就可以不看啦,毕竟字是真的多,如果是做实验的话那跟着就可以啦
Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。
也就是说,你的服务器就是一头鲸鱼,鲸鱼身上有着很多个箱子,就像我们运行的服务,一个个不同的服务呢,装在一个个不同的箱子里面,相互隔开互不影响
那docker的优点呢
1.运行快,以毫秒为单位;
2.部署简单,容器化,不需要额外添加操作系统;
一台服务器可以布置百甚至上千个运行时;
3.开源,有免费版有商业版
docker-ce:免费版
docker-ee:商业版,主要是解决依赖第三方
缺点:因为是共用资源,所以很难保证安全性
因为我们只有一头鲸鱼啊,资源都是共用的
最好分配2核cpu2G内存吧
我们之前呢已经装好centos了,没有安装也不要慌
添加链接描述
关闭防火墙:systemctl stop firewalld && systemctl disable firewalld
关闭selinux:setenforce 0
修改selinux配置文件之后,重启机器,selinux才能永久生效
vi /etc/selinux/config
输入getenforce
显示Disabled表示selinux关闭成功
配置时间同步:
yum install -y ntp ntpdate
ntpdate cn.pool.ntp.org
安装基础软件包:yum install -y wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack
安装docker-ce,啥条件啊咱装免费版就好
##配置阿里云的yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
安装docker-ce
yum install docker-ce -y
启动docker服务
systemctl start docker && systemctl enable docker
查看docker状态:systemctl status docker
显示running就是开启了的
配置阿里云镜像加速器
添加链接描述
点击Centos,可以看到我们的镜像加速器的地址
创建一个文件:
sudo mkdir -p /etc/docker
创建一个文本里面写上你镜像加速器的地址:
sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://你的镜像加速器地址.com”]
}
EOF
再次进入文件检查一下,如果有地址就是配置成功
vi /etc/docker/daemon.json
再重启一下配置和docker
systemctl daemon-reload
systemctl restart docker
也可以配置多个,地址间逗号隔开
[“https://registry.docker-cn.com”,“http://hub-mirror.c.163.com”]
这样我们拉取镜像的时候就会快很多
我们首先要拉取镜像,然后在此镜像上部署相关服务
镜像的相关操作:
拉取centos的镜像:docker pull centos
查看镜像:docker images
把镜像做成离线压缩包:docker save -o centos.tar.gz(压缩包 的名字) centos(指定本地镜像)
解压:docker load -i centos.tar.gz
删除镜像:docker rmi centos(镜像名称):latest(镜像标签TAG)
查看镜像可以看到镜像的标签
容器相关操作:
创建并启动一个容器:
docker run --name nginx -td centos /bin/bash
nginx:容器的名字
-t:配分一个伪终端
-d:在后台运行
centos:指定启动docker的镜像
/bin/bash:说明你的shell类型为bash,bash shell是最常用的一种shell, 是大多数Linux发行版默认
docker ps:查看运行中的容器
docker ps -a:查看所有容器包括没有运行的容器
docker ps | grep nginx:查看nginx这个容器的详细信息
创建成功之后就可以进入容器:docker exec -it nginx(要进入的容器的名字) /bin/bash
-i:以交互式方式登录到容器
停止运行容器:docker stop nginx(容器的名字)
启动已停止运行的容器:docker start nginx
删除容器:docker rm nginx
了解了容器基础的相关命令之后我们就来部署nginx服务吧,命令多敲几遍就能记住啦
docker run --name nginx -p 80 -itd centos
-p:映射端口
登录到nginx:docker exec -it nginx /bin/bash
然后安装nginx:yum install nginx -y
创建一个静态页面,测试用的啦
创建一个文件:mkdir /var/www/html
进入到这个目录:cd /var/www/html
创建并编辑一个静态html文件:vi index.html
<html>
<head>
<title>nginx in docker</title>
</head>
<body>
<h1>hello,My Name is zhujun</h1>
</body>
</html>
:wq : 保存退出
然后我们得指定nginx的访问路径呀,我们的这个代码是在我们创建的目录,这个nginx它不知道呀
vi /etc/nginx/nginx.conf :这是nginx的配置文件
进来文件之后,输入/root,这是搜索root的意思,不然那么多的字母找到眼睛都瞎咯
就是这里啦,把root那一行的路径改成我们刚刚建的文本所在路径就可以啦,这样呢这个nginx就知道我们访问的是这个路径啦,傻nginx
启动nginx: /usr/sbin/nginx
傻nginx启动起来啦,我们去访问一下docker里面的nginx
因为我们现在在容器里面,所以我们要新开一个窗口,如果用的是CRT远程连接的虚拟机
如果是其他就百度吧
查看nginx的详细信息:docker ps | grep nginx
可以看到我们物理映射的端口是49153—>80,也可能是49154,49156
我们来curl一下:curl http://192.168.40.180:49153
如果能看到我们敲的那行html代码那就代表可以啦
虚拟机的IP加上映射的端口浏览器访问康康?
比如我虚拟机的192.168.2.100:49153
浏览器是不是能看到 hello,My Name is zhujun?
如果能看到那么,我们的傻nginx就配置好啦
如果你觉得写的还不错,不用一键三连!也不用一键四连!!请给我个赞赞吧,你的支持是我最大的动力!!
码字真的不容易,转载一定要注明出处呀