【docker入门】从零开始学习在CentOS7上部署docker

操作准备:

    因为Centos7一般设置了selinux安全级别很高的关口,因此先使用getenforce命令查看是否已经关闭,如果不是disabled,那么需要关闭。使用vi /etc/sysconfig/selinux命令编辑文件,修改SELINUX=disabled最后重新启动系统即可。

docker简介:   

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

docker的作用:

    在部署每一个不同的服务都可能需要各种特定的运行环境,例如需要部署war/jar包,就需要安装tomcat和jdk,并且需要了解这些如何使用。而在docker中可以使这些jar/war包+环境环境配置制作成一个整体包相当于做成一个标准的集装箱。用户不需要了解如何 部署环境也可以使用服务的功能。docker实现了一次打包处处部署。

linux系统=内核+文件系统

linux虚拟化技术=复用原内核+自己定制的文件系统

docker基于linux虚拟化技术实现的,docker封装的标准集装箱相当于自己定制的文件系统,封装成一个个新的隔离沙箱进程,

在CentOS上安装docker:

cd /etc/yum.repos.d
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #安装docker的源
yum install docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io -y    #指定版本为18.09.9
systemctl start docker
systemctl enable docker

docker主要包括三个部件:镜像、仓库和容器。与Maven的jar包使用过程类似,从镜像仓库中下载所需的镜像,然后通过镜像实例化出docker容器,也可以逆向操作。

使用docker images命令可以查看当前docker本地仓库中所存在的镜像

使用docker version命令可以查看当前docker的版本信息

使用docker info命令可以查看当前docker的详细信息

在docker创建一个mysql服务:

 docker pull mysql:5.7    #将mysql5.7的镜像从远程仓库复制到本地仓库
 docker run -d --name mysql -p 3306:3306  -e MYSQL_ROOT_PASSWORD=root mysql:5.7
#-d表示后台运行,name表示服务的名称,-p 3306:3306表示通过前者本地的3306端口访问到后者docker容器mysql服务的3306端口,-e MYSQL_ROOT_PASSWORD设置管理员root用户的密码,mysql:5.7表示使用mysql5.7的镜像
docker ps    #查看当前环境所运行的docker服务所使用的端口信息

修改docker配置使用国内阿里云的镜像加速器:

cd /etc/docker
vi daemon.json
#在文件中写入下面的内容
{
        "bip":"172.17.3.1/24",   
        "registry-mirrors":["https://kzorq22x.mirror.aliyuncs.com"]
}
 #bip设置docker所使用的IP段
systemctl daemon-reload    #重载配置文件
service docker restart    #最后重启docker即可

修改后可以使用docker info查看是否已经修改成功

使用 docker inspect mysql可以查看某个服务的端口等信息

使用 docker rm -fv mysql 可以删除某个服务的数据,-fv表示强制删除所有数据

docker的大部分文件操作命令和Linux系统本身的类似

如果需要使用某个服务的ip可以使用curl IP地址命令进行操作。

进入docker某个容器的内部的方法:

docker exec -it nginx /bin/bash使用exec命令可以可以进入nginx容器的内部操作

注:docker使用最小版的linux定制,很多命令都不能使用,例如只能使用ls没有ll命令

容器挂载本地的配置文件目录:

docker run -d --name nginx2 -v /docker/nginx:/etc/nginx/conf.d nginx
使用前者/docker/nginx的宿主机目录替代/etc/nginx/conf.d容器中的目录

使用挂载目录后,镜像原来为该目录所配置的文件会被宿主机挂载的目录所覆盖

作用:

1.配置时可以直接在宿主机配置

2.容器生产的业务数据.不允许放在容器内

3.容器日志方便查看,直接在宿主机使用docker -logs 容器服务名命令即可查看日志信息

宿主机和容器交互文件:

docker cp nginx:/etc/nginx/conf.d/default.conf .
#表示将nginx容器中的/etc/nginx/conf.d/default.conf文件复制到宿主机的当前目录中

实现在Windows访问到容器:

使用ifconfig命令可以看到容器的网段与Windows的网段不一致,直接在Windows操作系统访问不到虚拟机中的linux操作系统的容器。这里涉及到三个网段,

虚拟机Linux操作系统的网段如,如:现在的IP是192.168.33.5

容器服务的网段,如:现在的IP是172.12.3.6

Windows操作系统的网段,如:现在的虚拟IP是192.168.33.7

如果需要直接在Windows操作系统访问到容器的服务端口,可以在运行容器时使用-p命令参数将容器的端口映射成虚拟机的端口,如:

docker run -d --name nginx3 -p 8080:80 nginx

现在在Windows操作系统的浏览器访问192.168.33.5:8080即可访问到容器中的nginx服务

查看镜像的结构:

使用docker history 镜像,可以查看该镜像的结构。

镜像的每一层结构对应一个id,不同镜像可以复用相同的层次结构。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值