1、
docker 使用了集装箱思想,由于开发人员的习惯不同,代码的风格不同,有些人喜欢使用linux环境开发,有的人喜欢使用windows,在开发过程中不会出现问题,一旦项目上线时会出现各种兼容性问题,导致项目上线周期比较长,因此我们在开发之初就创建一个统一的开发标准(开发环境),每个人都在在这个环境下开发,项目部署时,直接将整个环境部署到服务器.
2、docker和vm的区别
vm能干的事情docker 都能做,docker占用的资源会更少,docker启动速度很快
3、docker的安装
centos的yum源中提供了docker的安装程序
yum install docker
安装完成启动服务:
systemctl start docker
4、docker的基本操作
查看版本 docker --version
5、docker的基本使用(镜像、容器、仓库)
镜像 image:一般封装的是docker实例,是一些应用程序,里面是一些文件,这些文件是只读的
容器 container:是用来读取镜像和运行镜像文件, 在镜像的基础之上添加了一个可写层
仓库 registry:用来存储镜像的 公共仓库 私有仓库 光放提供了一个 docker hub
1)镜像的操作
查看本地镜像
docker images
查找镜像
docker search 镜像名
配置源
docker配置源文件 :/etc/docker/daemon.json
代开配置文件添加
{"registry-mirrors": ["https://3laho3y3.mirror.aliyuncs.com"]}
保存并推出
重启服务
拉取镜像
docker pull 镜像的名字
修改本地镜像的仓库名
docker tag 仓库名 新名字
docker tag 仓库名:tag 新名字:新标签
删除镜像
docker image rm 镜像id/镜像名
docker rmi 镜像id或者镜像名
2)容器操作
第一种:创建容器,不启动容器
docker create -it --name=名字 镜像id /bin/bash
-i 交互模式
-t 创建一个伪终端
--name 容器的名字
/bin/bash 绑定一个shell的环境
启动容器(启动未运行的容器,并进入容器,推出后容器停止运行)
docker start -ai 容器名 # 启动并进入容器
退出容器
exit
第二种:创建容器,并启动容器
docker run -dit --name 容器名 镜像id /bin/bash
进入容器
docker exec -it 容器名 /bin/bash
退出容器
exit
查看容器正在运行的容器
docker ps
docker container ls
查看所有的容器
docker ps -a
docker container ls --all
关闭容器
docker container stop 容器id或者容器名字
启动容器
docker container start 容器id或者容器名字
删除容器
docker container rm 容器ID或者容器名字
注意: 只能删除停止状态的容器
杀死容器(类似于stop)
docker container kill 容器ID或者容器名字
6、使用MySQL镜像
docker run -itd --name mysql01 -e MYSQL_ROOT_PASSWORD=密码 镜像id
-e 设置MySQL管理员密码
docker exec -it mysql01 /bin/bash
端口映射:
服务器 3307端口已经被django使用
docker run -itd --name=’mysql01’ -p 3307:3306 -e MYSQL_ROOT_PASSWORD=’123456’ 镜像id
7、制作镜像
1)下载一个纯净版的centos镜像
docker search centos
docker pull name
2) 创建容器并运行镜像
docker run -itd --name=’’ 镜像id /bin/bash
3)进入镜像并安装python3
docker exec -it 容器名 /bin/bash
yum install python3 -y
4)制作镜像
退出容器后
Docker commit -m ’描述’ -a ’作者’ 容器名 镜像名:标签名
5)打包镜像,打包成tar包
Docker save -o 压缩后的文件名.Tar 镜像名
6)使用镜像
Docker load < 压缩包路径/ 压缩后的文件名.Tar
8、仓库 registry
docker 官方提供了一个开源的库
https://hub.docker.com/ 可以注册自己的仓库
在终端输入
docker login
修改镜像名
docker tag 旧名字:tag 用户名/仓库名:tag
上传:
docker push 用户名/仓库名:tag