一、Docker的作用与优点
- 高效的的利用系统资源
- 更快速的启动时间
- 一致的运行环境
- 持续交付和部署
- 更轻松的迁移
- 更轻松的维护和扩展
Doker 主要使用的是 分层和镜像与传统的虚拟机相比 ,doker优势是启动速度快、占用体积小
Docker 是一个客户端-服务端(c/s)、基于镜像运行容器,客户端 通过访问docker守护进程 然后访问容器
Docker 是同注册中心保存用户的镜像的 ,注册中心分为俩种公共的和私有的
公共的是 dockerhub 网站 hub.docker.com
二、安装Docker 和常用命令
yum install -y yum-utils device-mapper-persistent-data lvm2
// 设置阿里云镜像 ce :社区版 ee:企业版
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
yum -y install docker-ce
设置ustc 的镜像
ustc 的docker 镜像加速器
创建docker目录 mkdir -p /etc/docker
编辑 vim /etc/docker/deamon.json
插入
{
“registry-mirrors”:[“https://docker.mirrors.ustc.cn”]
}
启动docker :systemctl start docker
查看docker是否启动成功 : systemctl status docker
停止docker :systemctl stop docker
开机自启动:systemctl enable docker
查看镜像:docker images
搜索镜像: docker search 镜像名称
拉取镜像:docker pull 拉去镜像名称
删除镜像:docker rim 镜像id 删除所有 docker rim ‘docker images -p’
查看正在运行的容器 : docker ps
查看所有容器: docker ps -a
查看最后一次运行的容器 :docker ps -1
查看停止的容器:docker ps -f status=exited
创建容器: dockers run
-i:表示运行容器
-t:表示容器启动后回进去命令行,加入这俩个参数后,容器创建就能登录进来,即分配一个伪终端
–name:为装创建的容器命 名
-v: 表示目录映射关系 ,可以使用多个-v做多个目录或文件映射,
-d:在run后面加上-d 参数则会创建一个守护式容器在后台运行
(这样创建容器后不会自动登录容器,如果只加-i-t俩个参数,创建后就会自动进去容器)
-p:表示端口映射,前者是宿主机端口,后者是容器内映射端口,可以使用多个-p做多个端口映射
docker run -di --name=mysql -p 3306(mysql端口):3306(数组机容器的端口) -e(添加环境变量) MYSQL_ROOT_PASSWORD =root mysql:5.7(镜像名称)
交互式方式创建容器
docker run -it --name=mychentos 镜像 /bin/bash (后台运行不需要)
退出容器:exit
创建容器 :dicker exec -it 容器名称或容器id /bin/bash (进入容器)‘
文件拷贝 :dockers cp 文件 docker的id:目录
创建容器挂载目录:docker run -di -v 资源机目录:docker目录 --name=容器名称 镜像
查看配置文件: dockers insperct 容器名称
删除容器:docker rm 容器的id
容器保存成一个镜像
docker commit reids myredis(名称)
镜像的备份
docker save -o myredis.tar(备份文件名称) myredis(名称)
镜像恢复
docker load -i myredis.tar(备份文件)
dockerfile :命令 和参数结构构成的脚本
from image_name.tag: 定义了使用那个基础镜像启动构建流程
maintainer user_name :声明镜像的创建者
nev key value : 设置环境变量(可以写多条)
run command : 是dockersfile 的核心部分(可以写多条)
add source_dir/file dest_dir/file : 将宿主的主机文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
copy source_dir/file dest_dir/file :和add相似,但是如果有压缩文件并不解压
workdir path_dir : 设置工作目录
docker build -t=‘’ .(当前目录)
docker pull 私有仓库名称
docker run -di --name=(私有仓库名称) -p 端口:端口 镜像名称
添加信任私有仓库
docker push ip:端口/jdk1.8
dockerMaven