前言
docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。(官方介绍)
一、安装、删除Docker
环境: 博主使用的环境是Linux系统CentOS7
uname -r #查看系统内核版本
cat /etc/os-release #查看系统版本
安装docker
1.按照腾讯云官方文档安装docker(因为博主服务器是腾讯云的)
配置镜像源可配也可以不配置问题不大
腾讯云配置镜像加速源
2.按照官方安装docker
打开官方安装文档可能会有点慢我就将命令复制在下面了
# 1.卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 2.需要的安装包
yum install -y yum-utils
# 3.配置镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 4.更新yum软件包索引
yum makecache fast
# 5.安装docker引擎(ce 社区版本 ee 企业版本)
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 6.启动docker服务
systemctl start docker
安装完成后
docker version #查看docker版本信息,查看是否安装成功
这就表示安装成功了
删除docker
#卸载依赖
yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras
#删除资源
rm -rf /var/lib/docker #默认工作路径
rm -rf /var/lib/containerd
二、安装、删除镜像
区分一个概念,我们在docker拉取的 mysql、redis、nginx这都是属于镜像,只有当docker run+指定参数启动后才算是启动了一个容器
安装镜像
第一种方式:
1.查看镜像
docker search 镜像名(例:mysql) #搜索镜像,会通过关键字搜索的方式查询出含有mysql关键字的镜像
2.拉取镜像
docker pull 查看出来的镜像NAME #拉去镜像
这就拉取成功了不过如果不加版本号就是拉去最新的(latest),这个就看个人选择了
3.查看镜像
docker images 镜像名 #镜像名(可选),不加镜像名就是查询所有
根据镜名像查询
查询所有
第二种方式:
在此处搜索你需要的镜像文件,他就会显示所有可以安装的版本(此处无需登录)
直接复制后面的docker命令执行就可以安装指定版本的镜像
博主认为第二种方式可能会更方便一点
删除镜像
docker rmi 镜像名:版本号
三、操作容器
启动容器
1.最简单的方式
docker run -it -p 3306:3306 mysql:latest
2.添加参数启动
并不是所有的容器启动参数都一样、如果遇到启动失败的问题可能需要修改配置
以mysql为例子
docker run
-d
-p 宿主机映射的端口:3306
--privileged=true
-v 宿主机映射文件:/var/log/mysql
-v 宿主机映射文件:/var/lib/mysql-files
-v 宿主机映射文件:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=设置root登录密码
--name 这里的容器名可以随便写
mysql:8.0.20
参数介绍
docker run 启动容器
-p 宿主机端口:docker容器端口 (不指定端口会随机进行分配)
-d 容器后台运行
-v 进行文件的映射(将容器中的配置文件、数据文件在宿主机进行持久化
-e 设置配置文件中参数的信息
--privileged=true 设置容器以root权限进行运行
--name 设置容器的名称
停止容器
docker stop 容器名 或者 容器ID #停止容器
删除容器
1.停止后删除
docker rm 容器名 或者 容器ID #删除容器
2.强制删除
docker rm -f 容器名 或者 容器ID #删除容器
查看容器列表
1.查看正常运行的容器
docker ps
2.查看所有容器(包含启动失败的容器)
docker ps -a
3.列出容器列表只展示容器ID
docker ps -a -q
进入容器内部(前提:容器正常启动)
1.进入容器内
docker exec -it 容器ID或容器名 /bin/bash
只要不报错,然后路径改个就表示进入成功了,这时可能你外面下载的插件都不能用了,不要慌这不是因为没下载只是容器内部还没和宿主机进行互通
可以按照该博主的方式进行操作在容器内部重新下载插件就可以使用需要的命令了
2.退出容器
ctrl + d 退出容器 (exit)
查看容器日志
1.查看容器内所有日志信息
docker logs 容器名 #查看日志
2.带参数参看日志
这句命令意思:查询该容器的日志,显示时间戳、并且跟随容器内的操作动态打印日志、只显示10行
docker logs 容器名 -f -t -n 10
-f 跟踪日志输出
-t 显示时间戳
-n 后面跟显示条数
使用 ctrl+z退出动态监控
重启容器
docker restart 容器名 #重启容器
四、进行镜像打包
这里以java中的jar包为例
1.配置Dockerfile
FROM openjdk:8
VOLUME /tmp
ADD store-static.jar store-static.jar
EXPOSE 3002
ENTRYPOINT ["java","-jar","/store-static.jar"]
FROM 当前镜像是基于哪个镜像
EXPOSE 当前容器需要对外暴露的端口
ADD 将宿主机目录下的文件拷贝进镜像中,并且会自动处理URL和解压tar包
ENTRYPOINT 指定一个容器启动是要执行的命令 ,和CMD一样,但一般和CMD配合使用
VOLUME 容器数据卷,用于保存数据和持久化工作
2.构建docker镜像
docker build -t 镜像名(随意取) .
注意点:
1.在Dockerfile中jar包名不能含有大写字母
2.上文中的 openjdk:8 这个镜像是我本地提前就下好的,如果没有会报错
3.构建docker镜像的命令结尾的逗号不是打错了是必须要加上的
3.构建完成
只要不报错就是构建成功
可以通过 docker images 镜像名 查看时候构建成功,如果生成了该镜像就可以像执行其余镜像一样使用docker run命令执行该镜像
总结
这里我只是简单介绍了一个docker的使用方式,其实很多参数和功能可能我都还没介绍到如果有兴趣的兄弟们可以自行进行研究,个人感受使用docker后是有比以前在服务器上通过最原始的方式安装软件和管理软件方便多了