1.初始Docker
Docker的概念
Docker是基于Go语言实现的云开源项目。 Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分 发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行 环境能够做到“一次镜像,处处运行”。
Docker解决的问题【运维的工作】
我们写的代码会接触到好几个环境: 开发环境,测试环境以及生产环境:
Linux容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。将应用打成 镜像,通过镜像成为运行在Docker容器上面的实例,而 Docker容器在任何操作系统上都是一致的,这 就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了 操作。
思考: mysql--->centos 必须非常麻烦 【允许远程访问 密码】--->打包为一个镜像--->运行该镜像
安装Docker
Docker可以运行在MAC、Windows、CentOS、UBUNTU等操作系统上,本课程基于CentOS7安 装Docker。官网: https://www.docker.com
1.yum包更新【如果安装不了需要的软件包】
yum update
2.、安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱 动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
3.设置yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker ce/linux/centos/docker-ce.repo
4.安装docker
yum install -y docker-ce
5.查看docker版本,验证是否验证成功
docker -v
报错:设置不了yum源
找到/ect/yum.repos.d把里面有关docker的文件都删除掉,再重新设置yum,再安装docker
Docker架构
- Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可 以创建很多容器。
- 容器(Container) :Docker 利用容器(Container)独立运行的一个或一组应用。就像是Java 中的类和实例对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器为镜像提供了 一个标准的和隔离的运行环境,它可以被启动、开始、停止、删除。每个容器都是相互隔离 的、保证安全的平台
- 仓库(Repository)是集中存放镜像文件的场所。
- 类似于 Maven仓库,存放各种jar包的地方;
- gitee仓库,存放各种git项目的地方;
- Docker公司提供的官方registry被称为Docker Hub,存放各种镜像模板的地方。 仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
- 最大的公开仓库是 Docker Hub(https://hub.docker.com/), 存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云等
配置Docker镜像加速器
默认情况下,将来从docker hub ( https://hub.docker.com/)上下载docker镜像,太慢。一般都会 配置镜像加速器:
USTC:中科大镜像加速器( https://docker.mirrors.ustc.edu.cn)
阿里云
网易云
腾讯云
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
重启docker:systemctl restart docker
2.Docker常用命令
2.1Docker服务相关的命令
启动docker服务:systemctl start docker
停止docker服务:systemctl stop docker
重启docker服务:systemctl restart docker
查看docker服务状态:systemctl status docker
开启docker服务:systemctl enable docker
查看docker命令帮助文档:docker 具体命令 --help
2.2Docker镜像相关的命令
查看镜像:
- docker images
搜索镜像:
- docker search redis
拉取镜像:
- docker pull redis:6.0 冒号后跟的是版本号,如果不跟默认latest
- docker pull redis==docker pull redis:latest
删除镜像:
根据id删除
- docker rmi 镜像id
根据名称:版本号删除
- docker rmi redis:7.0
删除所有镜像
- docker images q --查询所有镜像的id
- docker rmi (docker images q)
2.3Docker容器相关的命令
1.创建容器并进入
docker run -it --name=c01 centos:7 /bin/bash
-i:保持容器一直运行,因为容器没有客户端连接会自动关闭
-t:给容器分配伪终端结束命令
--name:给容器去名字
centos:7:镜像加版本号
/bin/bash:进入容器的初始化指令,这里相当于是打开一个shell窗口
2.查看容器
docker ps --查看正在运行的容器
docker ps -a --查看所有容器
3.创建一个容器但不进入容器
docker run -id --name=c02 cnetos:7
通过这种方式创建的容器退出以后不会自动关闭
-d:通过后台运行创建容器,创建完成不会立刻进行容器,需要通过命令进入容器
4.进入指定容器内
docker exec -it c02 /bin/bash
5.启动容器
docker start c02
6.停止容器
socker stop c02
7.删除容器
docker rm 容器id #只删除未启动的容器
docker rm -f 容器id||名称 #删除任何容器
docker ps -aq #查看所有容器的id
docker rm docker ps -aq
8.查看容器信息
docker inspect c02
9.输出当前容器日志信息--知道容器启动失败的原因
docker logs 容器id