Docker个人笔记

1.Docker介绍

1.1引言

	1.我本地运行没有问题啊。
		环境不一致
	2.那个哥们又写死循环了,这么这么卡。
		在多用户操作系统下,会相互影响。
	3.淘宝在双11的时候,用户爆增
		运维成本过高的问题。
	4.学习一门技术,学习安装成本过高
		安装软件成本过高。

1.2 Docker的由来

   一帮年轻人创业,创办了一家公司,2010年的专门做PAAS平台
   到了2013年的时候,像亚马逊,微软,Goodle都开始做PAAS平台。
   2013年,将公司内的核心技术对外开源,核心技术就是Docker。
   到了2014年的时候,得到了C轮融资,$4000W.
   到了2015年的时候,得到了C轮融资,$9500W.
   全神惯注的维护Docker。
   索罗门主要作者之一

在这里插入图片描述

Docker的作者已经离开了维护Docker的团队。

在这里插入图片描述

1.3Docker的思想

 	1.集装箱:
 		会将所有需要的内容放到不同的集装箱中,谁需要这环境就直接那到这个集装箱就可以了。
 	2.标准化
 		1. 运输的标准化:Docker又一个码头,所有上传的集装箱都放在了这个码头上,当谁需要某一个环境,
 		就直接指派大海豚去搬运这个集装箱就可以了
 		2. 命令的标准化: Docker提供了一些列的命令,帮助我们去获取集装箱等等操作
 		3. 提供了REST的API:衍生出了很多图形化界面,Rancher。
 	3.隔离性
 		Docker在运行集装箱内的内容时,会在Linux的内核中,单独开辟一片空间,这片空间不会影响到其他程序.
  • 注册中心。(超级码头,上面放的就时集装箱)
  • 镜像。(集装箱)
  • 容器。(运行起来的镜像)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2Docker的基本操作

1.安装Docker

 	1.下载关于Docker的依赖环境
 	yum -y install yum-utils device-mapper-persistent-data lvm2

在这里插入图片描述

2. 设置一下下载Docker的镜像源

	yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

在这里插入图片描述

3.安装Docker

 yum makacache fast
 yum -y install docker-ce

在这里插入图片描述

4.启动,并设置开机自动启动,测试

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

在这里插入图片描述

2.2Docker 的中央仓库

	1. Docker官方的中央仓库时镜像最全的,但是下载最慢。
	hub.docker点com
	3. 国内的镜像网站:网易蜂巢,daoCloud ...
 	https://c.163yun.com/hub#/home
	https://www.daocloud.io/			(推荐使用)
	4. 在公司内部会采用私服的方式拉取镜像 (添加配置)
 	需要在/etc/docker/daemon.json
 	{
 			"registry-mirrors": ["https://registry.docker-cn.com"],
 			"insecure-registries": ["ip:poert"]
 	}
 	重启两个服务
 	systemctl daemon-reload
 	systemctl restart docker

2.3镜像的操作

1.拉取镜像到本地

	#		docker pull 镜像名称[:tag]
	举个例子
	#		docker pull daocloud.io/library/tomcat:8.5.20-jre8-alpine

在这里插入图片描述

2.查看全部本地的镜像

	#	docker images

在这里插入图片描述

3.删除本地镜像

	 	# 	docker  rmi 镜像的标识

在这里插入图片描述

4.镜像的导入导出(不规范)

 	将本地的镜像导出
 	#  docker save -o 导出路径 镜像 id 
 	加载本地的镜像文件
 	#  docker load -i 镜像文件
 	修改镜像名称
 	dokcer tag 镜像id  新镜像名称:版本

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.4容器的操作

1.运行容器

	简单操作
	#		docker run 镜像标识|镜像名称[:tag]
	常用的参数
	#		docker run -d -p 宿主机端口: 容器端口:  --name 容器名称 镜像的标识 | 镜像名称[:tag]
	-d  代表后台运行容器
	-p  宿主机端口: 容器端口: 为了映射当前Linux的端口和容器的端口
	--name  容器名称: 指定容器的名称

在这里插入图片描述

2.查看正在运行的容器

	#	docker ps [-qa]
	-a: 查看全部的容器,包括没有运行
	-q: 只查看容器的标识

在这里插入图片描述

3.查看容器的日志

	#  docker logs -f 容器id
	-f: 可以滚动查看日志的最后几行

在这里插入图片描述

4. 进入到容器内容

 	#  docker exec -it 容器 id bash

5.删除容器 (删除容器前,需要先停止容器)

	停止指定容器
	#  docker stop 容器id
	停止全部容器
	#  docker stop $(docker ps -qa)
	删除指定容器
	#  docker rm 容器id
	删除全部容器
	docker rm $(docker ps -qa)

在这里插入图片描述

6. 启动容器

	docker start 容器id

3.Docker应用

在这里插入图片描述

在这里插入图片描述

3.1 准备SSM工程

MySQL数据库的连接用户名和密码改变了,修改db.properties

3.2准备MySQL容器

	运行MySQL容器
	# docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root 	daocloud.io/library/mysql:5.7.4

3.3准备Tomcat容器

	运行Tomcat容器,前面已经搞定,只需要将SSM项目的war包部署到Tomcat容器内部即可
	可以通过命令将宿主机的内容复制到容器内部
	#	docker cp  文件名称 容器id:容器内部路径
	举个例子
	# docker cp ssm.war 1f /usr/local/tomcat/webapps/
	

在这里插入图片描述

*一定要注意容器id是否正确

在这里插入图片描述
在这里插入图片描述
静态文件没有放行。

3.4 数据卷

	为了部署SSM的工程,需要使用到cp的命令将宿主机的ssm.war文件复制到容器内部
	数据卷:将宿主机的一个目录映射到容器的一个目录中。
	可以在宿主机中操作目录中的内容,那么容器内容映射的文件,也会跟着一起改变。

1.创建数据卷

	docker volume create 数据卷名称
	创建数据卷之后,默认会存放在一个目录下 /var/lib/docker/volume/数据卷名称/_data

在这里插入图片描述

2.查看数据卷的详细信息

	docker volume inspect 数据卷名称

3.查看全部数据卷

	docker volume ls

在这里插入图片描述

4.删除数据卷

	docker volume rm 数据卷名称

在这里插入图片描述

5.应用数据卷

	当你映射数据卷,如果数据卷不存在,Docker会帮你自动创建,会将容器自带的文件,存储在默认的存放路径中
	docker run -v 数据卷名称:容器内部路径  镜像id
	直接指定一个路径作为数据卷的存放位置。这个路径下是空的。
	docker run -v 路径:容器内部的路径  镜像id

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.Docker自定义镜像

	中央仓库上的镜像,也是Docker的用户自己上传过去的。

1.创建一个Dockerfile文件,并且指定自定义镜像信息。

	Dockerfile文件常用的内容
	from: 指定当前自定义镜像依赖的环境
	copy:相对路径下的内容复制到自定义镜像中
	workdir:声明镜像的默认工作目录
	cmd:需要执行的命令(在workdir 下执行的,cmd可以写多的,只以最后一个为准)
	举个例子,自定义一个tomcat镜像,并且将ssm.war部署到tomcat中
	from daocloud.io/library/tomcat:8.5.14-jre8
	copy ssm.war /usr/local/tomcat/webapps

在这里插入图片描述

2将准备好的Dockerfile和响应的文件拖拽到Linux操作系统中,通过Docker的命令制作镜像

	docker build -t 镜像名称:[tag]  .

在这里插入图片描述

6.Docker-Compose使用

6.1下载Docker-Compose

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6.2Docker-Compose管理MySQL和Tomcat

在这里插入图片描述
在这里插入图片描述

在这里插入代码片
version: '3.1'
services:
  mysql:    # 服务器名称
     restart: always    # 代表只要docker启动,那么这个容器就跟着一起启动
     image: daocloud.io/library/mysql:5.7.4 # 指定镜像路径
     container_name: mysql   # 指定容器名称
     ports:
       - 3306:3306    # 指定端口号的映射
     environment:
       MYSQL_ROOT_PASSWORD: root   # 指定MySQL的ROOT用户登录密码
       TZ: Asia/Shanghai    # 指定时区
     volumes:
       - /opt/docker_mysql_tomcat/mysql_data:/var/lib/mysql    # 映射数据卷
  tomcat:
    restart: always
    image: daocloud.io/library/tomcat:8.5.15-jre8
    container_name: tomcat
    ports:
      - 8080:8080
    environment:
      TZ: Asia/Shanghai
    volumes:
      - /opt/docker_mysql_tomcat/tomcat_webapps:/usr/local/tomcat/webapps
      - /opt/docker_mysql_tomcat/tomcat_logs:/usr/local/tomcat/logs

6.3使用docker-compose命令管理容器

在使用docker-compose的命令时,默认会在当前目录下找docker-compose.yml文件

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
查看日志
在这里插入图片描述

6.4 docker-compose配置Dockerfile使用

docker-compose.yml

version: '3.1'
services:
  ssm:
    restart: always
    build:          # 构建自定义镜像
      context: ../  # 指定dockerfile文件的所在路径
      dockerfile: Dockerfile  # 指定Dockerfile文件名称
    image: ssm:1.0.1
    container_name: ssm
    ports:
      8081:8080
    environment:
      TZ: Asiz/Shanghai

Dockerfile文件

from daocloud.io/library/tomcat:8.5.15-jre8
copy ssm.war /usr/local/tomcat/webapps

在这里插入图片描述

7.Docker CI,CD

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值