docker简介
镜像:运行环境+编写的程序
docker为什么会出现
docker构建的理念:一次构建,处处运行。
每一个运行的软件环境就相当于鲸鱼背上的一个集装箱,一个docker就相当于一条鲸鱼,包含了所有的集装箱即所有的程序运行环境。
docker的出现就是为了帮助运维部署环境。
解决了运行环境和配置问题软件容器,方便做持续 集成并有助于整体发布的容器虚拟化技术。
之前的虚拟机技术
容器虚拟化技术
docker的优点
docker就相当于一个浓缩精简版的linux
开发/运维
开发自运维,开发人员不仅开发,还要干运维的活
中文网址
docker-cn.com
镜像和容器的关系
仓库
Docker Hub用来存放镜像,但是Docker Hub是国外网站,访问速度太慢。
Docker安装(yum)
官网安装参考手册:https://docs.docker.com/install/linux/docker-ce/centos/
1.uname -r命令用于查看linux的内核版本
cat /etc/redhat-release 用于查看centos版本信息(确定是centos7及以上版本)
2.卸载旧的版本
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
3.安装所需的软件包
$ sudo yum install -y yum-utils
device-mapper-persistent-data
lvm2
4.设置stable镜像仓库(选择阿里云镜像仓库)
$ sudo yum-config-manager
–add-repo
http:**//mirrors.aliyun.com/docker-ce/linux/centos/**docker-ce.repo
5.更新yum软件包索引
yum makecache fast
6.安装docker
$ sudo yum install docker-ce docker-ce-cli containerd.io
7.启动docker
systemctl start docker
8.测试是否安装成功
启动docker
docker version
运行docker程序
docker run hello-world
查看docker镜像
docker images
docker run hello-world(hello-world是一个镜像)指令的讲解
首先从本地仓库寻找镜像来建立容器,找不到从云端仓库拉取镜像。
docker运行原理
为什么docker比VM运行的快
docker命令
帮助命令
docker version验证安装成功
docker info 查看详细信息
docker --help帮助命令
镜像命令
1.鲸鱼图解
2.docker images 列出本地主机上的镜像
参数说明
3.docker search xxx 从docker hub上查找查找xxx镜像
docker pull xxx等价于docker pull xxx :latest从hub上下载xxx镜像
4.镜像删除
容器命令
容器启动参数
以交互的方式运行docker容器docker run -it centos
以设置端口的方式前端启动容器 docker run -it -p 8080:8080 +容器名字
以设置端口的方式后台启动容器docker run -d -p 8080:8080 +容器名字
以后台守护的方式启动docker容器docker run -d centos
启动mysql:
docker run -d -p 3306:3306
-v /home/mysql/conf:/etc/mysql/conf.d
-v /home/mysql/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=lzy199805
–name mysql01 mysql:5.7
后台启动容器机制
docker ps 列出当前正在运行的容器,鲸鱼背上有哪几个集装箱正在运行
docker ps后边可以加的参数
关闭容器后退出exit
容器不停止退出 :ctrl+p+q
启动容器: docker start +容器名或容器id
重启容器:docker restart +容器名或容器id
停止容器:docker stop +容器名或容器id
强制停止容器:docker kill +容器名或容器id
删除已停止的容器:docker rm + 容器id
强制删除容器:docker rm -f + 容器id
一次性删除多个容器:
以后台方式启动容器并一直运行:docker run -d centos /bin/sh -c “while true; do echo hello zzyy; sleep 2; done”
查看容器日志
查看容器内运行的进程:docker top +容器id
查看容器内部细节: docker inspect +容器id
退出容器后再对容器进行操作(进入正在运行的容器并以命令行交互):
attach需进入容器再对容器操作
exec 既可以在容器外边操作也可以进入容器操作
从容器内拷贝文件到主机上: docker cp 容器id:容器内路径 目的主机路径
镜像原理
以Tomcat镜像为例
镜像分层结构的好处
镜像特点
镜像提交
标签即版本号
实例
docker容器数据卷
作用:容器的持久化,容器间继承+共享数据
容器数据卷
在容器内添加数据卷
直接命令添加
命令
Dockerfile
定义
构建三步骤
内容基础知识
执行大致流程
添加数据卷
1.可以在Dockerfile中使用VOLUME指令来给容器添加多个数据卷
命令
在主机内有默认的和数据卷互通的命令
2.build生成镜像命令
-f是指构建的file文件
-t是指命名空间
.是指在当前目录下生成镜像
3.docker出现挂载主机权限不够解决办法
数据卷容器
数据卷容器之间相互传递数据
docker run -it --name docker02 --volumes- from docker01 镜像(相当于镜像2继承了镜像1)
多个mysql实现数据共享
结论