目录
一、docker安装
1.准备好CentOS
2.在vmvare打开CentOS,并克隆
3.通过MobaXterm工具链接虚拟机系统
1.1.安装docker
1.在线安装:
第一步:安装一组工具
sudo yum install -y yum-utils
第二步:设置 yum 仓库地址
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
第三步:更新 yum 缓存
sudo yum makecache fast #yum 是包管理器
第四步:安装新版 docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
2.离线安装:
第一步:下载docker离线包
https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz
第二步:下载离线安装工具
https://github.com/Jrohy/docker-install/
第三步:将下载好的资源放在一个目录
创建/root/setup/docker目录,然后拷贝下载好的资源到此目录
第四步:执行安装操作
# 进入/root/setup/docker 文件夹
cd /root/setup/docker
# 为 install.sh添加执行权限
chmod +x install.sh
# 安装
./install.sh -f docker-20.10.6.tgz
第五步:安装成功以后,检查安装状态
docker info
二、docker基本操作:
1.启动docker服务:
systemctl start docker
2.查看状态:
systemctl status docker
3.设置开机自启和禁止开机自启 以及重启
#开机自启
systemctl enable docker
#禁止开机自启
systemctl disable docker
#重启docker服务
systemctl restart docker
三、镜像下载和基本操作
1.下载镜像:
docker pull 镜像名
2.查看镜像详情
#查看镜像文件
docker images
#查看镜像详情
docker inspect + 镜像名/镜像ID
4.查看镜像历史
docker history + 镜像名
5.导出、删除、导入、运行镜像
#镜像导出(linux系统中的镜像文件下载到本地-例如window),导出后给他人使用
docker save xxxx | gzip > xxxx.tar.gz
#删除镜像
docker image rm xxxx
#导入镜像(要在xxxx.tar.gz 文件所在目录下执行)
docker load < xxxx.tar.gz
#创建并启动容器。
docker run -it xxxx bash
# 1)xxxx - 镜像名,
# 2)-it 这是两个参数(-i表示交互式操作, -t 表示终端)
# 3) bash 表示进入操作终端,基于交互式进行相关操作(例如执行linux相关指令)。
6.查看docker中的容器
查看docker运行中的容器
docker ps
查看docker运行中的所有容器
docker ps -a
7.查看容器日志信息
查看后台运行的容器输出结果,这个指令非常重要,假如容器没有启动,要通过此指令去看一下错误日志。
docker container logs -f -t 8c8
8.停止或重启容器
# 停止运行的容器
docker container stop + 容器ID前三位
# 重新启动容器
docker container restart + 容器ID前三位
9.进入指定容器
docker exec -it 802 bash #802为容器id
退出容器 , 假如从宿主机进入了启动的容器,退出容器需要使用exit指令
exit
10.删除容器
docker container rm 802 #802为容器id
其中,如果删除运行中的容器,需要添加 -f 参数。
清理所有终止状态容器,例如:
docker container prune
四、数据卷操作
# 数据卷是一个可供一个或多个容器使用的特殊目录,可以在容器之间共享和重用,默认会一直存在,即使容器被删除。
# 创建数据卷
docker volume create container-vol
# 查看所有数据卷
docker volume ls
# 查看指定 数据卷 的信息
docker volume inspect container-vol
# 启动挂载数据卷的容器
docker run -it --mount source=container-vol,target=/root centos:7 bash
# 简写方式 -v container-vol:/root 把数据卷 container-vol 挂载到容器的 /root 目录
docker run -it -v container-vol:/root centos:7 bash
# 删除数据卷(如果数据卷被容器使用则无法删除)
docker volume rm container-vol
# 清理无主数据卷
docker volume prune
# 挂载主机目录 我们还可以在启动容器时,以目录直接挂载的方式进行数据操作
docker run -it -v /usr/app:/opt/app centos:7 bash
# 1)/usr/app:为宿主机目录
# 2)/opt/app: 为启动容器的一个目录
# 3)-v 用于指定挂载目录,如果本地目录(宿主机目录)不存在, Docker 会自动为你按照挂载目录进行目录的创建。
五、镜像制作:
1. centos:7镜像 (所有的镜像文件创建时都需要有一个空的centos镜像,就类似通过一个空的光盘或u盘创建一个系统启动盘是一样的)
2. jdk压缩包 jdk-8u51-linux-x64.tar.gz(可以从官网去下载:oracle.org),基于此压缩包,制作jdk镜像。
3. 创建一个新的文件夹,存放jdk
4. 将下载好的jdk压缩包放入文件夹中
5.在创建新的镜像时都需要有一个Dockerfile文件(文件名一定要注意大小写),这个文件要与你的资源放在一起(例如你下载的jdk),
#创建此文件
touch Dockerfile
#创建此文件并且进入
vim Dockerfile
6. 在Dockerfile里面设置环境变量,输入以下代码:
# 编写FROM语句
FROM centos:7
# 通过ADD命令将宿主机中的压缩包传入镜像容器中的指定目录,并同时解压缩
ADD jdk-8u51-linux-x64.tar.gz /usr/local/docker
# 设置环境变量(通过ENV关键字实现,目录启动容器中的目录)
ENV JAVA_HOME=/usr/local/docker/jdk1.8.0_51 \
PATH=/usr/local/docker/jdk1.8.0_51/bin:$PATH
# 指定命令行操作(所有指令与后面内容要有空格)
CMD ['bash']
7. 运行镜像:
docker run -it jdk:8 bash
六、数据库安装
1.拉取指定版本mysql
docker pull mysql:8.0.23
2. 查看MySQL镜像
docker images
3.启动MySQL镜像
sudo docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0.23
6.1 登录MySQL服务
1.进入容器 (退出容器用exit)
sudo docker exec -it mysql bash
2.登陆(默认密码root),一定要先进入mysql容器。
mysql -uroot -proot
3.停止和启动mysql服务
停止mysql服务(可选)
docker stop mysql
启动mysql服务
docker start mysql
查看mysql启动时的日志,
docker container logs mysql
设置mysql开机自启动(可选)
docker update mysql --restart=always
七、安装redis数据库
7.1安装步骤:
1. 下载镜像文件
docker pull redis
2. 准备配置文件
# 创建redis配置文件目录
mkdir -p /usr/local/docker/redis01/conf
在配置文件录下创建redis.conf配置文件(这个文件一定要创建,否在我们进行目录挂载时默认生成的是一个目录)
touch /usr/local/docker/redis01/conf/redis.conf
3. 创建redis实例并启动
sudo docker run -p 6379:6379 --name redis01 \
-v /usr/local/docker/redis01/data:/data \
-v /usr/local/docker/redis01/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
第四步:查看正在运行的进程
docker ps