Docker学习笔记
视频是跟看B站 “2020 Docker最新超详细版教程通俗易懂”
前言:
1.为什么要使用Docker?
--解决环境不一致的问题
--解决多用户操作系统的相互影响问题
--解决运维成本过高问题
--解决安装软件耗费时间成本过高的问题
2.Docker思想
--集装箱(共享化)
--标准化(传输标准化,命令标准化)
--隔离性(在linux的内核中,不会影响其他位置)
3.形象理解
注册中心----码头,堆放各种集装箱
镜像----集装箱
容器----运行起来的镜像
Docker基本操作
1.安装
--a.下载安装docker的依赖环境
yum -y install yum-utils device-mapper-persistent-data lvm2
--b.设置下载docker的镜像源(如果不设置的话默认是从docker的官网下载,官方服务器在国外所以下载很慢,这里是选择去阿里云下载镜像了)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
--c.安装docker
yum makacache fast (安装缓存)
yum -y install docker-ce (安装服务)
--d.启动docker
systemctl start docker
(设置开机自启动:systemctl enable docker)
--e.测试是否安装成功
docker run hello-world
下方出现“This massage shows that your installation appears to be working correctly”说明安装成功
2.Docker的中央仓库
--1.docker官方的中央仓库:hub.docker.com 镜像最全,下载速度较慢
--2.国内的镜像网站:网易蜂巢(c.163.com),daoCloud(hub.daocloud.com)(推荐),阿里云之类的
--3.公司内部会采用私服的方式拉去镜像,通过局域网下载速度更快,需要添加配置才可以生效:
需要找到/etc/docker/daemon.json 这个文件,如果没有的话需要自己添加上:
{
"registry-mirrors":["https://registry.docker-cn.com(就是一个国内的镜像网站)"],
"insecure-registries":["ip:公司内部的port号"]
}
再重启两个服务:
systemctl daemon-reload
systemctl restart docker
3.镜像的操作
----a.拉取镜像到本地
docker pull 镜像名称[:tag] #中括号中的是标签内容,表明要下载的版本号,如果没有这个标签就下载默认的版本
举例如下:(拉取tomcat的镜像)
docker pull daocloud.io/library/tomcat:8.5.15-jre8
----b.查看全部本地的镜像
docker images
----c.删除本地镜像
docker rmi 镜像的唯一标识(id)
----d.镜像的导入导出(由于各种原因无法拉下来的镜像,可以先打包通过U盘或网盘或其他传输方式获得到本地,导入自己的linux操作系统中)
将本地的镜像打包导出: docker save -o 导出的路径 给打包带image命名 镜像的id
加载本地的镜像:docker load -i 目标image名 (新加载的镜像是没有repository名和tag名的,需要重新命名)
----c.1.重新命名:docker tag 镜像id 新镜像名称:版本
4.容器的操作
1.运行容器
docker run 镜像的标识 镜像的名称[:tag]
常用的参数 [-d] [-p 宿主机端口:容器端口] [--name 容器名称,镜像的标识|镜像名称[:tag]]
-d:代表后台运行容器,如果不加,会占满整个界面来运行当前启动的容器,如果强制停止去执行其他操作,那么容器也会跟着停止
-p 宿主机端口:容器端口 :为了映射当前linux的端口和容器的端口【例如:要启动tomcat,tomcat在容器内部占用的是8080端口,如果想访问,通过windows找到linux,再由linux找到容器,这样就需要把这两者的端口映射一下,才能在window下访问到容器内部的信息】
--name 容器名称 :指定容器的名称
假设现在我linux的端口是8081,8080是tomcat容器的端口 那么我可以运行
docker run -d -p 8081:8080 --name tomcat b8fexxx(就是image id)
启动这个容器,可以尝试在windows上浏览器访问192.168.xxx.8081 ,就可以看到在容器内部运行的tomcat首页
2.查看正在运行的容器
docker ps -a或-q
-a:查看全部的容器,包括没有运行的,如果不加就只能看到正在运行的容器
-q:只查看容器的标识,不查看其他信息
3.查看容器的日志
docker logs -f 容器id
-f :可以滚动查看日志的最后几行
4.进入到容器内部
docker exec -it 容器id bash
其实相当于docker为tomcat的运行在linux内核中单独开辟了一块空间,称为容器,容器内部有独立的操作系统,上述的命令就可以进入到这个操作系统中(容器中),ls可查看到系统中都包含哪些内容,如bin,lib,conf等还可以cd到其中的如bin文件夹内,看到startup.sh和shutdown.sh这些文件,但一般不推荐直接在容器中操作容器
5.删除容器(删除容器之前一定要先停止容器)
停止:
docker stop 容器id
docker stop $(docker ps -qa) 停止全部容器
删除:
docker rm 镜像id
或者docker rm $(docker ps -qa) 删除全部容器
6.启动容器
docker start 容器id
三.Docker的应用
待补充