Docker入门概述/安装和删除/工作流程/常用命令

文章目录Docker 概述架构Docker安装/删除Docker工作流程底层原理Docker为什么比VM快?HelloWorld流程Docker常用命令帮助命令镜像命令容器命令新建容器并启动其他常用命令Docker 概述目的:开发项目,服务器配置应用环境例如Redis,jdk,MySQL,jdk,ES,Hadoop等,但是配置比较麻烦,不能够跨平台使用,通过docker直接搞定所有的配置和环境。通过下载Docker仓库中的镜像,可以直接运行。Docker对应用打包装箱,相互隔离没有避免产生冲突。作用
摘要由CSDN通过智能技术生成

Docker 概述

目的:
开发项目,服务器配置应用环境例如Redis,jdk,MySQL,jdk,ES,Hadoop等,但是配置比较麻烦,不能够跨平台使用,通过docker直接搞定所有的配置和环境。通过下载Docker仓库中的镜像,可以直接运行。Docker对应用打包装箱,相互隔离没有避免产生冲突。

作用:
Docker可以代替虚拟机,轻量级模拟环境,提高运行速度和占用的存储空间。

  • 虚拟机:占用资源多,启动慢,冗余步骤多
  • 容器技术:不是模拟完整操作系统,直接运行在宿主机的内核中,没有自己的内核,每个容器内都是自己隔离的,互不影响。

Docker开发运维

  • 应用快速交付部署:打包发布测试,一键运行
  • 便捷升级和扩缩容:打包项目,运行在另一台服务器上直接进行扩容
  • 简单的运维:环境开发高度一致
  • 高效资源利用:Docker内核级别虚拟化,一个物理机上可以运行多个容器。

架构

  • 镜像(image):镜像就好比一个模板,可以通过模板来创建容器服务,例如:tomcat镜像 -> run ->tomcat01容器(提供服务),通过镜像可以创建多个容器。最终的服务项目运行就是在容器中的。
  • 容器(container):独立运行一个或者一组应用,通过镜像来创建。通过命令来执行
  • 仓库(registory):存放镜像的地方

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


Docker安装/删除

Docker-Centos安装文档


菜鸟安装教程

1. 删除旧的版本

sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine

2. 需要的安装包,设置国内镜像

sudo yum install -y yum-utils \

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

3. 安装Docker

sudo yum install docker-ce docker-ce-cli containerd.io

4. 启动并测试

启动
sudo systemctl start docker
查看版本
sudo docker version
测试运行
sudo docker run hello-world

docker没有发现镜像,自动拉取最新版本
在这里插入图片描述

5.删除

卸载docker
sudo yum remove docker-ce docker-ce-cli containerd.io
删除目录资源
sudo rm -rf /var/lib/docker

6. 配置阿里云镜像

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxxsouy.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

Docker工作流程

底层原理

在这里插入图片描述

Docker 是一个 Client-Server结构系统,Docker的守护进程运行在主机上,通过Socket从客户端访问,外界Linux服务器和内部Docker容器是相互隔离的,如果想访问进程端口则需要通过进行连接,否则访问不到

Docker为什么比VM快?

在这里插入图片描述

  1. Docker有着比虚拟机更少的抽象层
  2. Docker利用的是宿主机的内存,VM用的是Guest OS,需要自己新建

HelloWorld流程

在这里插入图片描述

  1. docker run 会在本机寻找镜像,判断是否有镜像,如果有镜像就使用,没有则下载
  2. 下载时DockerHub上是否有镜像,没有报错,有则下载

Docker常用命令

帮助命令

版本
docker version
详细信息,系统信息
docker info
帮助命令
docker 命令 --help

镜像命令

docker images
-a 列出所有镜像
-q 只显示id

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

docker search 镜像名
-f 进行过滤
--filter=stars=3000 收藏大于三千

在这里插入图片描述

docker pull NAME[:tag]
tag 表明版本号,如果不标明,则下载最新版本

Docker采用分层下载模式,例如新版本和旧版本,通过分片,已有版本就不需要进行下载极大的节省空间。

在这里插入图片描述

删除节点,可以通过名称或者ID删除
docker rmi
-f 全部删除
获取所有的ID进行删除
docker rmi -f $(docker images -aq)

在这里插入图片描述


容器命令

有了镜像才可以创建容器,使用CentOS进行学习

新建容器并启动

docker pull centos
docker run [参数] image

--name="Name" 	容器名字,用来区分容器
-d            	后台方式
-it				交互方式运行,进入容器查看内容
-p 				指定端口 
			-p 8080:8080 
			-p 主机端口:容器端口
-P				随机指定端口
-e 				设置环境变量

eg:docker run -p 3306:3306 --name docker_mysql -e=MYSQL_ROOT_PASSWORD=root -d mysql

exit 退出

在这里插入图片描述
运行容器

docker ps 	查看正在运行的容器
-a 			查看曾经运行过的容器
-n=? 		显示最新创建的容器
-q 			只显示容器编号

在这里插入图片描述
退出容器

exit 退出容器并且停止

删除容器,不能删除正在运行的
docker rm 						
docker rm -f $(docker ps -aq)	删除所有容器
-f 强制删除

docker ps -a -q|xargs docker rm 删除所有容器

开启容器

docker start 容器ID
docker restart 容器ID
docker stop 容器ID
docker kill 容器ID

其他常用命令

后台启动容器

后台启动容器

docker rum -d centos

Docker后台运行centos发现自动停止了。Docker容器使用后台运行,必须要有一个前台进程,Docker没有前台应用,就会自动停止

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

查看日志

docker logs
-tf 显示日志
--tail number 显示一定数量的日志

查看进程信息

查看容器中的进程信息

docker top 容器ID

查看镜像数据

查看镜像元数据 

docker inspect 容器ID

查看镜像详细数据

在这里插入图片描述
通常容器都是后台运行的,需要进入容器修改一些配置。

  • docker exec 进入容器后开启新的终端,可以在里面操作
  • docker attach 进入容器正在执行的终端,不会启动新的进程
进入当前运行的容器
docker exec -it 容器ID /bin/bash
docker attach 容器ID

docker exec -it docker_mysql bash 进入mysql容器

从容器内拷贝到主机上

docker cp 容器ID:容器内路径 目的的主机路径

docker cp 599aba1a80d1:/home/duplicate.java /home

通过-v可以连接两个文件

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值