微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Docker

一 简介

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口 (类似 iPhone 的 app),更重要的是容器性能开销极低

1.Docker的安装

下载Docker依赖的环境,想安装Docker,需要先将依赖的环境全部下载,就像Maven依赖JDK一样。
yum -y install yum-utils device-mapper-persistent-data lvm2

2.指定Docker镜像源

认下载Docker回去国外服务器下载,速度较慢,我们可以设置为阿里云镜像源,速 度更快
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.安装 Docker

yum makecache fast
yum -y install docker-ce

4.启动Docker并测试

#启动Docker服务 systemctl start docker
#设置开机自动启动 systemctl enable docker
#测试 docker run hello-world

二 Docker 的应用场景

Web 应用的自动化打包和发布 自动化测试和持续集成、发布 在服务型环境中部署和调整数据库或其他的后台应用 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS (Platform-as- a-Service) 环境

三 Docker的思想

1.集装箱

会将所有需要的内容放到不同的集装箱中,谁需要这些环境就直接拿去这个集装箱就可以了

2.标准化

运输的标准化:Docker有一个码头,所有上传的集装箱都放在了这个码头上,当谁需要某一个环境,就直接指派大海豚去搬运这个集装箱就可以了。
命令的标准化:Docker提供了一系列命令,帮助我们去获取集装箱等的操作

3.隔离性

Docker在运行集装箱内的内容时,会在Linux的内核中,单独的开辟出一片空间,这片空间不会影响到其他程序

4.中央仓库

超级码头,里面放的就是各种集装箱。

5.镜像

就是集装箱。

6.容器

运行起来的镜像

四 镜像的操作

1.拉取镜像

从中央仓库拉取镜像到本地
docker pull 镜像名称[:tag]
# 举个例子:docker pull daocloud.io/library/tomcat:8.5.15-jre8

2.查看本地全部镜像

docker images
查看本地已经安装过的镜像信息,包含标识,名称,版本,更新时间,大小

在这里插入图片描述

3.删除本地镜像

docker rmi 镜像的标识
镜像会占用磁盘空间,可以直接手动删除,表示通过查看获取

在这里插入图片描述

4.镜像的导入导出

1.将本地的镜像导出
docker save -o 导出的路径+保存名称镜像id
2.加载本地的镜像文件
docker load -i镜像文件路径名称
3.修改镜像名称
docker tag镜像id:版本 新镜像名称:版本

在这里插入图片描述

五 容器操作

1.运行容器

简单操作:
运行容器需要指定具体镜像,如果镜像不存在,会直接下载。
docker run镜像的标识或镜像的名称[:tag]   》前台运行,不推荐使用

在这里插入图片描述

常用的参数: 》推荐使用
docker run -d -p宿主机端口:容器端口 --name容器名称 镜像的标识I镜像名称[:tag]
#-d:代表后台运行容器
#-p宿主机端口 :容器端口:为了映射当前Linux的端口和容器的端口
#--name容器名称:指定容器的名称
docker run -d -p 8080:8080 --name tomcat8 daocloud.io/library/tomcat:8.5.15-j re8
可以利用docker ps -qa和docker logs -f容器id或者名称命令查看容器运行信息

在这里插入图片描述

2.查看正在运行的容器

查看全部正在运行的容器信息
1 docker ps -qa
2 # -a:查看全部的容器,包括没有运行
3 # -q:只查看容器的标识

在这里插入图片描述

注意:镜像有自己的ID,容器有自己的ID,它两不一样

在这里插入图片描述

3.查看容器日志

查看容器日志,以查看容器运行的信息
1 docker logs -f容器id或者名称
2# -f:可以滚动查看日志的最后几行

在这里插入图片描述

4.重新启动容器

docker restart 容器 id |名称

在这里插入图片描述

5.启动停止运行的容器

docker start 容器 id|名称

在这里插入图片描述

6.停止指定的容器

停止指定的容器(删除容器前,需要先停止容器)
docker stop 容器id |名称

在这里插入图片描述

7.进入容器内部

可以进入容器内部进行操作
docker exec -it 容器id | 名称 bash
#例如先启动一个tomcat容器,然后通过该命令进入到tomcat容器内部文件夹中进行一系列操作。
#退出容器内部
exit

在这里插入图片描述

注意:root@a97579bc57d 中a97579bc57d代表容器 ID,root是该容器中用户

8.复制内容到容器

将宿主机的文件复制到容器内部的指定目录
docker cp文件名称容器id|名称:容器内部路径

在这里插入图片描述

9.停止全部容器

docker stop $(docker ps -qa)

在这里插入图片描述

10.删除指定容器

docker rm容器id|名称

在这里插入图片描述

11.删除全部容器

docker rm $(docker ps -qa)

六 Docker应用

1.部署SSM项目

1.Docker 安装 Tomcat
运行Tomcat容器,为部署SSM工程做准备
2.docker run -d -p 8080:8080 --name tomcat daocloud.io/library/tomcat:8.5.15-jr e8
3 Docker 安装 MysqL
运行MysqL容器,为部署SSM工程做准备
4 运行 MysqL(-p 3307:3306 端口映射,主机端口 3307 --name 容器名称-e MysqL_ROOT_PASSW ORD=密码)
docker run -d -p 3307:3306 --name MysqL5.7 -e MysqL_ROOT_PASSWORD=syc daoclou d.io/library/MysqL:5.7.4
#注意:
#如果端口号被占用,可以考虑3307端口。
#另外原先在linux课程中,MysqL密码为P@ssw0rd
#进入mysq l容器内部
docker exec -it MysqL5.7 bash
#执行MysqL登录命令
MysqL -u root -p
注意:这里用的是宿主中的 MysqL服务

在这里插入图片描述

七 数据卷

1.数据卷

将宿主机的一个目录映射到容器中的一个目录中。
可以在宿主机中操作目录中的内容,那么容器内部映射的文件,也会跟着一起改变。

2.创建数据卷

创建数据卷之后,认会存放在一个目录下/var/lib/docker/volumes/数据卷名 称/_data
docker volume create 数据卷名称
#例如:
docker volume create localVolume

在这里插入图片描述

3.查看数据卷详情

查看数据卷的详细信息,可以查询到存放路径,创建时间等等
docker volume inspect 数据卷名称

在这里插入图片描述

4.查看全部数据卷

查看全部数据卷信息
docker volume ls

在这里插入图片描述

5.删除数据卷

删除指定数据卷
docker volume rm数据卷名称

在这里插入图片描述

6.容器映射数据卷

映射有两种方式:
1.通过数据卷名称映射,如果数据卷不存在。Docker会帮你自动创建,会将容器内部自带文件,存储在认的存放路径中。
2.通过路径映射数据卷,直接指定一个路径作为数据卷的存放位置。但是这个路径下是空的。
1.通过数据卷名称映射
docker run -v数据卷名称:容器内部的路径镜像id
#例如将localVolume映射到tomcat8中的webapps目录:
docker run -v localVolume:/usr/local/tomcat/webapps tomcat8:8.5.15-jre8
可以查看数据卷中的内容,例如:
cd /var/lib/docker/volumes/localVolume/_data

在这里插入图片描述

八 Docker-Compose

之前运行一个镜像,需要添加大量的参数,可以通过Docker-Compose编写这些参数。 而且Docker-Compose可以帮助我们批量的管理容器。这些信息只需要通过一个 docker-compose.yml文件去维护即可。

1.设置权限

需要将DockerCompose文件名称修改一下,给予DockerCompose文件一个可执行 的权限
1 mv docker-compose-Linux-x86_64 docker-compose
2 chmod 777 docker-compose

在这里插入图片描述

2.配置环境变量

方便后期操作,配置一个环境变量
将docker-compose文件移动到了/usr/local/bin,修改了/etc/profile文件, 给/usr/local/bin配置到 了PATH中
1 mv docker-compose /usr/local/bin
2 vi /etc/profile
#添加内容:
3 export PATH=$JAVA_HOME:/usr/local/bin:$PATH
4 source /etc/profile

在这里插入图片描述

3.安装RabbitMQ

首先在linux服务器中的/usr/local/目录下创建一个rabbitmq文件夹,然后在该文件夹下创建一个 docker-compose.yml 文件。
# 创建rabbitmq文件夹 mkdir /usr/local/rabbitmq
# 创建 docker-compose.yml 文件 vi docker-compose.yml

复制如下内容到docker-compose.ym I文件中:

在这里插入图片描述

version: "3.1"
services:
  rabbitmq:
    image: daocloud.io/library/rabbitmq:management
    restart: always
    container_name: rabbitmq
    ports:
      -5672:5672
      -15672:15672
    volumes:
      -./data:/var/lib/rabbitmq
1.docker-compose命令
在使用docker-compose的命令时,认会在当前目录下找docker-composeym文件
2.启动管理的容器
#基于docker-compose.ym l启动管理的容器 docker-compose up -d

在这里插入图片描述

3.关闭删除容器
关闭删除容器
docker-compose down
4.开启丨关闭丨重启
#开启丨关闭丨重启已经存在的由docker-compose维护的容器 docker-compose start|stop|restart

在这里插入图片描述

5.查看管理的容器
查看由docker-compose管理的容器 docker-compose ps

在这里插入图片描述

6.查看日志
查看日志 docker-compose logs -f

在这里插入图片描述

7.启动RabbitMQ

在这里插入图片描述

5.查看管理的容器

查看由docker-compose管理的容器 docker-compose ps

在这里插入图片描述

6.查看日志
查看日志 docker-compose logs -f

[外链图片转存中...(img-DEEgioK8-1617799314182)]

7.启动RabbitMQ

在这里插入图片描述

九.Docker-Compose管理容器

ym/文件以key: value方式来指定配置信息
多个配置信息以换行+缩进的方式来区分
在docker-compose.ym/文件中,不要使用制表符

在这里插入图片描述

原文地址:https://www.jb51.cc/wenti/3280197.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐