Docker

一、文档地址:

​ https://docs.docker.com

二、Docker的基本组成

1.镜像(image)

​ Docker镜像好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像==>run==>tomcat01容器(提供服务),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的。)

2.容器(container)

​ Docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建的。

​ 启动、停止、删除等基本命令。(一个简易的linux系统)

3.仓库(repository)

​ 仓库就是存放镜像的地方,分为共有仓库和私有仓库。

​ Docker hub(默认是国外的,需要配置镜像加速)

三、安装Docker

1.环境查看
#系统内核是3.10以上的
[root@localhost lizz]# uname -r
4.18.0-193.el8.x86_64
#系统版本
[root@localhost lizz]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"
2.安装
#1.卸载原来旧的docker
$ 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
#3.设置镜像的仓库
$ sudo yum-config-manager \
    --add-repo \
    #https://download.docker.com/linux/centos/docker-ce.repo(国外下载地址)
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#4.更新yum软件包索引
$ sudo yum makecache fast(centos8需要去掉fast)
#5.安装docker
		#安装依赖
$ yum install    https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
$ sudo yum install docker-ce docker-ce-cli containerd.io
#6.启动Docker
$ systemctl start docker
#7.查看版本
$ docker version
#8.测试HelloWorld
$ docker run hello-world
#9.查看下载的HelloWorld镜像
$ docker images
3.卸载
#1.卸载依赖
$ sudo yum remove docker-ce docker-ce-cli containerd.io
#2.删除资源    /var/lib/docker    docker的默认工作路径
$ sudo rm -rf /var/lib/docker
4.配置阿里云镜像下载加速

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

四、Docker执行流程
在这里插入图片描述

五、Docker工作原理

​ Docker是一个cs结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问。

​ DockerServer接收到Docker-Client的指令,就会执行这个命令。

Docker为什么比虚拟机快?

​ 1.Docker有着比虚拟机更少的抽象层。

​ 2.Docker利用的是宿主机的内核,vm需要的是Guest OS。

​ 所以新建一个容器的时候,Docker不需要像虚拟机一样重新加载一个操作系统内核,避免引 导,虚拟机是加载Guest OS,分钟级别的,而Docker是利用宿主机的操作系统,省略了这个 复杂的过程。

六、Docker的常用命令

帮助命令: (文档地址:https://docs.docker.com/engine/reference/commandline/build)

docker version								#docker的版本信息
docker info									#docker的详细信息
docker --help								#帮助命令

镜像命令

####查看
docker images								#查看镜像
-a,  --all									#列出所有镜像
-q,  --quiet								#只显示镜像的id
####搜索
docker search   (docker hub)				 #搜索镜像
docker search --filter=status=3000			  #条件搜索(搜索条目大于三千的)
####下载
docker pull	镜像名称 [:tag]					  #下载镜像
[root@localhost lizz]# docker pull mysql
Using default tag: latest					 #如果不写tag,默认时latest
latest: Pulling from library/mysql
852e50cd189d: Pull complete 				 #分层下载,docker image的核心 联合文件系统
29969ddb0ffb: Pull complete 
a43f41a44c48: Pull complete 
5cdd802543a3: Pull complete 
b79b040de953: Pull complete 
938c64119969: Pull complete 
7689ec51a0d9: Pull complete 
a880ba7c411f: Pull complete 
984f656ec6ca: Pull complete 
9f497bce458a: Pull complete 
b9940f97694b: Pull complete 
2f069358dc96: Pull complete 
Digest: sha256:4bb2e81a40e9d0d59bd8e3dc2ba5e1f2197696f6de39a91e90798dd27299b093  #签名
Status: Downloaded newer image for mysql:latest 
docker.io/library/mysql:latest				   #真实地址

#删除镜像
docker rmi -f image_id							#根据镜像id删除单个
docker rmi -f image_id1	image_id2 image_id3       #根据镜像id删除多个
docker rmi -f $(docker images -aq)				 #删除所有的镜像

​ 容器命令(有了镜像才可以创建容器)

1.新建容器并启动

docker run [可选参数] image
#参数说明
--name="Name"								#容器名称(Name),用于区分容器
-d										   #后台方式运行
-it										 	#使用交互方式运行,进入容器查看内容
-p		
	-p	ip:主机端口:容器端口
	-p	主机端口:容器端口(常用)				#指定容器的端口 -p 8080:8080
	-p	容器端口
	容器端口
-p											#随机指定端口

2.退出容器

exit									   #直接容器停止并退出
Ctrl+P+Q               						 #容器不停止退出(快捷键)

3.列出所有的容器

docker ps									#查看当前运行的容器
docker ps -a								#查看运行历史记录
docker ps -n=?								#显示最近创建的容器
docker ps -q								#只显示容器的编号
docker ps -aq								#显示所有容器的编号

4.删除容器

docker rm 容器id								#删除指定的容器(不能删除正在运行的容器)
docker rm -f 容器id							#删除指定的容器(包括正在运行的容器)
docker rm -f $(docker ps -aq)					#删除所有容器
docker ps -a -q|xargs docker rm					#删除所有容器

5.启动和停止容器

docker start 容器id							#启动容器
docker restart 容器id							#重启容器
docker stop 容器id							#停止当前正在运行的容器
docker kill 容器id							#强制停止当前容器

6.常用其它命令

#后台启动容器
docker run -d 容器名
#问题docker ps  发现容器停止了(容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止。)

#查看日志命令
docker logs -tf --tail 数量 容器id				#显示指定数量的日志
-tf											#显示日志
--tail number								  #要显示的日志数

#查看容器中进程信息
docker top 容器id

#查看镜像的元数据
docker inspect 容器id

#进入当前正在运行的容器(容器通常使用后台方式运行,需要进入容器,修改一些配置)
docker exec -it 容器id bashshell		#进入容器后开启一个新的终端,可以在里面操作(常用)
docker attach -it					#进入容器正在执行的终端,不会启动新的进程

#从容器内拷贝文件到手机上
docker cp 容器id:容器内路径  目的主机路径
docker run -d -p 8088:9000 \      
--restarter=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

七、使用DockerUI工具portainer

#安装Portainer镜像
docker pull portainer/portainer
#安装Portainer容器
docker run --name="portainer01" -d -p 8088:9000 portainer/portainer
#打开浏览器访问地址:http://192.168.35.128:8088  注册并登录

八、发布镜像

docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG版本]

九、容器数据卷

​ 容器的持久化和同步操作!容器间也是可以数据共享的。

docker run -it -v 主机目录:容器目录

ainer01" -d -p 8088:9000 portainer/portainer
#打开浏览器访问地址:http://192.168.35.128:8088 注册并登录


### 八、发布镜像

```shell
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG版本]

九、容器数据卷

​ 容器的持久化和同步操作!容器间也是可以数据共享的。

docker run -it -v 主机目录:容器目录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值