Docker整理大全,未完结版

Docker

vmvare 虚拟机:

  • 虚拟机是先给我们虚拟出来一堆硬件环境,然后再虚拟出来的硬件环境中去虚拟出来一个系统,这些虚拟出来的硬件是从我们的计算机中的硬件中划分出来的 ,不是真实存在的

  • 在这个虚拟出来的硬件上面我们可以装应用
    在这里插入图片描述

虚拟机架构

在这里插入图片描述

全虚拟化架构图

在这里插入图片描述

OS层的虚拟化架构(Docker属于这种)

在这里插入图片描述

硬件层虚拟化在这里插入图片描述
Docker属于一个Cs的架构,必须是安装到linux上的,所以就需要一个虚拟机来操作了
  • 注册中兴:
    这个就是一个服务器,储存各种资源

  • 宿主机:
    docker引擎主要安装在linux下,所以需要一个linux的虚拟机做载体系统,比如ip为:192.168.19.364的linux系统

  • 镜像文件:
    类似于app的安装文件 apk文件,需要安装才能运行

  • 创建容器:
    docker容器是一个镜像的执行体,一个镜像文件可以创建多个不同的容器,每个容器独立运行

      类似于apk文件执行安装程序,安装好之后才能使用,安装好的容器中包括可以直接运行的软件,比如mysql\nginx\tomcat\redis甚至可以在容器中在安装一个操作系统centos
      
      安装好的容器,具有独立的ip,和宿主机的ip不是同一个ip,类似于在宿主机上又安装了一个独立的子虚拟机,只不过这个字虚拟机只安装了指定的某一个软件,比如一个tomcat容器,就相当于一台只安装了一个tomcat的子虚拟机
      
      同一个宿主机的docker引擎下的的各个容器,相当于局域网内的若干台机器
    
Docker的环境

在这里插入图片描述

Docker的安装
docker的常用命令
  • docker客户端的安装
    yum install docker

  • 安装后查看版本
    docker -v

  • systemctl
    systemctl 命令是系统管理器指令,它是service和chkconfig两个命令的组合

  • 启动
    systemctl start docker

  • 停止
    systemctl stop docker

  • 重启
    systemctl restart docker

  • 查看docker状态
    systemctl status docker

  • 帮助:
    docker–help

  • centos7 关闭防火墙
    systemctl stop firewalld.service

  • 禁止开机自启
    systemctl disable firewalld.service

Docker 镜像的操作

  • Docker镜像修改服务商
    (1)vi /etc/docker/daemon.json
    (2)在该文件中输入如下内容:输入“i”进入编辑,并将以下文本复制到daemon.json中,“i”就是"insert"的首字母。
    {
    “registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn”]
    }
    (3)重启docker
    systemctl restart docker

镜像的常用操作

	docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
	注意:带[ ] 的表示可以没有,其中默认仓库地址是 Docker Hub, 标签默认为latest。
  • 拉取镜像文件
    docker pull redis

  • 搜索镜像文件
    docker search redis

  • 查看镜像文件
    查看镜像文件的详情:
    docker images
    查看镜像文件的id:
    docker images -q
    删除单个镜像文件:
    docker rmi{镜像id}
    删除所有的镜像文件:
    docker rmidocker images -q: 注意删除容器的时候容器必须是退出的状态

查看容器的命令

  • 查询所有的容器(a :all)
    docker ps -a

  • 查询正在运行的容器
    docker ps

  • 查询最后一次运行的容器(l :last)
    docker ps -l

创建容器的常用的命令

  • 创建容器命令:
    docker run

  • 参数说明:
    -i :
    表示运行容器

      -t :
      表示容器运行后进入容器,
      
      -it:
      表示运行并且进入到该容器,即分配一个伪终端
      
      --name:
      表示为创建的容器命名:    注意:  只有命名才有两个-
      
      -v:
      表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用过个-v做多个或文件映射.注意:最好做目录映射,在宿主机上做修改,然后共享到容器上
      
      -d:
      在run后面加上-d参数则会创建一个守护式的容器在后台运行(这样创建容器后不会自动登录容器),如果只加-i-t两个参数,创建后就会进入到容器中
      
      -p:
      表示端口映射,前者是宿主机端口,后者是容器内的映射端口,可以使用多个-p做多个端口映射
    

在这里插入图片描述

docker下部署应用
应用安装
	docker pull redis
	docker pull mysql
     docker pull nginx
     docker pull tomcat

在这里插入图片描述

查看镜像文件
	docker images

在这里插入图片描述

Docker容器操作

将镜像->容器化
类似于安装软件的过程
  • 容器化后,会在docker客户端环境中生成一台虚拟机(ip),虚拟机中,有安装好的软件可以使用

  • 如果做了多个容器,每一个容器,都是一台虚拟机,这样在docker的环境下,就形成了docker内部的局域网

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

查看容器的路径

在这里插入图片描述

部署Tomcat应用
# 在docker下部署Tomcat应用

1. 拉去tomcat镜像
		docker pull tomcat
2. 创建tomcat容器
		docker run -id --name=mytomcat -p 8000:8080 tomcat:latest
		
		-id: 创建一个守护式容器
		--name : 命名
		-p: 端口映射 宿主机 的端口和内部的tomcat的端口的映射
		tomcat:latest : 指定版本
		
3. 进入tomcat容器
		docker exec -it mytomcat /bin/bash

4. 将静态资源复制到tomcat容器的webapps文件夹下
		1. alt+p 进入写入的命令
		2. put -r e:\temp_file\portal
		3. docker cp portal mytomcat:/usr/local/tomcat/webapps

5. 访问tomcat资源
		访问到8000/portal/index.html 就可以

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

部署Redis应用
# 部署redis应用

1. 拉取镜像
		docker pull redis
		
2. 创建redis守护式容器
		docker run -id --name=myredis -p 6379:6379 redis
		
3. 存取值
		redis-cli -h 192.168.92.132
		set  
		put


在这里插入图片描述

部署mysql
# 部署mysql

1. 拉去mysql镜像
		docker pull mysql
		
2. 运行一个守护式的mysql容器,并且给mysql的root用户设置密码
		docker run -id --name=myselfsql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
		
3. 进入到mysql容器中
		docker exec -it myselfsql /bin/bash
		
4. 登录mysql
		mysql -uroot -p123456
		
5. 通过navicat连接到mysql

在这里插入图片描述

镜像的备份和迁移
# 容器保存为镜像

* 命令
		docker commit mytomcat imgmytomcat
		mytomcat: 容器的名字
		imgmytomcat: 镜像的名字

在这里插入图片描述

# 镜像备份

* 备份: 
		docker save -o imgmytomcat.tar imgmytomcat
		
		-o: 输出
		imgmytomcat.tar: 备份后的名字
		imgmytomcat:需要备份的镜像的名字
		
* 删除之前的镜像
		docker rmi 镜像的id
		
* 重新导入镜像文件
		docker load -i 镜像的tar包
		

在这里插入图片描述

Docker 查看日志文件

tail -f /var/log/messages

Docker 部署java 应用

 1. 首先 要有一份dockerFile文件:

# 使用jdk 多少的版本
FROM openjdk:11

COPY *.jar /app.jar

# 运行的端口号
CMD ["--server.port=8080"]

EXPOSE 8080

# 容器的时间
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone


ENTRYPOINT ["java","-jar","/app.jar"]
# ENTRYPOINT:docker启动时,运行的命令,这里容器启动时直接运行jar服务。


 

 2. 其次把java 项目打包为jar 包
 3. 在linux 中创建相同的文件夹: forexample  ---> /docker/java
 4. 把dockerFile 和jar 包 cp 到 /docker/java 中去 
 5. 使用 docker build -t docker-test-java-images .  ( 后面有个. 一定要有 -t 打包的镜像的名称)  
 6. 上面步骤会生成一个唯一id 的镜像文件
 7.  使用 docker run -d --name docker-java-service -p 8080:8080 -v /docker/java/logs/:/logs/  983331b1aeeb 
 8. 第七步表示的是  -v 表示文件的映射 前面的是linux 宿主机的目录,映射到docker 容器内部的/logs 的目录中去
 9. ----  如果重新部署docker 的java
 10. 需要先停掉 的容器 
 11. docker ps 
 12. docker stop 容器id
 13. docker rm 容器id
 14. 然后把打包好的jar 包上传到 /docker/java的目录下
 15. 然后使用上面5-7 的命令

Docker 部署sftp 应用

docker 部署sftp:
docker run --name zk-sftp -v /zk-images/upload:/home/admin/upload  -p 2222:22 -d atmoz/sftp admin:admin123456:1001

-v 挂载到指定的目录下 ,:/home/admin/upload 这个是sftp 默认会根据用户名 admin 生成的文件默认上传的路径,/zk-images/upload 这个是linux 宿主机的目录
admin:admin123456:1001   用户名/密码/用户id
-p 端口映射


部署之后 用户对于文件的操作权限 是没有赋予的。
所以需要赋予用户权限
	
1、docker exec -it 容器的id  bash
2、 cd home/admin
3、ls -la
4、赋予权限 chmod 777 upload/ -R 

Docker 重启的时候 容器也重启

 
		容器还没有创建,在运行容器的时候加入–restart=always参数
		docker run -id --restart=always  -p 9999:9999 -v redis
		
		容器已经运行了
		docker update --restart=always  容器名称或者容器id
		
		想停止重启
			docker update --restart=no  容器名称或者容器id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值