Docker介绍
docker是一种虚拟化的容器技术
- docker将运行项目的每个部分都当做一个小容器,如:将tomcat当做一个容器,mysql当做一个容器等等。当要使用的时候,就将各个小容器组装起来使用。类似于集装箱一样,将不同的东西放在不同的箱子中装好,最后组装好一次运走。docker就是使用集装箱的概念。
- docker可以让开发者轻松的将应用以及依赖包打包到一个容器中,然后部署到任何流行的Linux机器上,而不需要关心环境问题。
- 容器是完全使用沙箱机制
Docker容器技术的特性
启动快
轻量级
资源占用少
实现自动化测试和持续的集成/部署
docker应用场景
构建一次性的环境: 如快速构建开发环境、测试环境、正式环境统一环境,实现自动化一键部署。
一、CentOS7安装docker:
1、安装需要的软件包:
yum install -y yum-utils
2、添加阿里云镜像加速:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、安装DOCKER CE:
yum -y install docker-ce docker-ce-cli containerd.io
4、经过上面3步,docker就装好了,通过查看版本号验证:
docker -v
5、启动docker(docker默认是没启动的):
systemctl start docker
6、设置docker开机自启动:
systemctl enable docker
二、docker常用命令:
#启动Docker服务
systemctl start docker
#停止Docker服务
systemctl stop docker
#重启Docker服务
systemctl restart docker
#添加Docker服务开机启动
systemctl enable docker
三,镜像 - 容器
- 镜像跟容器的关系
镜像 - 容器 == 类 - 对象
#拉取镜像(默认最新版本)
docker pull 镜像名
例: docker pull mysql
#查看所有镜像
docker image ls
#删除镜像
docker rmi 镜像Id
例 docker rmi 968083d5be36
#创建并启动mysql容器
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
#创建nginx容器
docker run --name myNginx -p 80:80 -d nginx
参数解释
docker run:启动容器
-name:容器名
-- p :左边为宿主机端口号,右边为容器端口号,相互映射
-- d :后太运行
nginx:镜像名称
#查看当前正在运行的容器
docker ps
#查看所有的容器,包括目前不在运行的
docker ps -a
#停止一个容器
docker stop 名称/容器id
#启动容器
docker start 名称/容器id
#重启容器
docker restart 名称/容器id
#修改已运行的容器停止开机自启
docker update restart=no 容器名
#以交互模式进入容器内部,容器都在/usr/local目录下,如tomcat容器,目录为/usr/local/tomcat,mysql容器,目录在/usr/local/mysql目录下
docker exec -itd 名称/容器id bash
#删除容器
docker rm 容器名称/容器id
#docker复制src到指定容器的目录,如果src是目录则连同目录都会被复制
docker cp src 容器名字(容器id):容器目录
#查看指定容器的运行日志
docker logs 容器名
#查看指定容器的运行日志
docker logs 容器名
三、docker镜像加速:
1、国内从DockerHub拉取镜像有时会遇到困难,此时可以配置镜像加速器。
阿里云镜像获取地址:
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
注册登录进去,在镜像加速器中会显示你专属的加速器地址,我的:
https://l2hfopre.mirror.aliyuncs.com
2、给docker配置阿里云镜像加速:
<1>在/etc/docker/daemon.json中写入如下内容(如果文件不存在请新建该文件):
{"registry-mirrors":["https://l2hfopre.mirror.aliyuncs.com"]}
<2>重新加载daemon并重启docker:
systemctl daemon-reload
systemctl restart docker