前言
提示:以下是本篇文章正文内容,下面案例可供参考
一、初始Docker
1.1 Docker
- Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题?
- Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植的镜像
- Docker应用运行在容器中,使用沙箱机制,相互隔离
- Docker如何解决开发、测试、生产环境有差异的问题?
- Docker镜像中包含完整的运行环境、包括系统柜函数库、仅依赖系统的Linux内核、因此可以在任务Linux操作系统上运行
二、安装Docker
2.1 安装
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. 安装 docker的阿里云镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4. 更新yum软件包索引
yum makecache fast
5. 安装docker
yum install docker-ce docker-ce-cli containerd.io
yum install -y docker-ce #ce为免费社区版
切记:关闭防火墙,否则Docker会用到各种端口,需要我们手动一个一个取开放端口很麻烦
#关闭防火墙 systemctl stop firewalld
#永久关闭防火墙 systemctl disable firewalld
6. 启动docker
systemctl start docker
7. 查看当前安装docker版本
docker version
8. 运行helloworld,会下载镜像
docker run hello-world
9. 查询当前下载的helloworld镜像
docker images(镜像)
2.2 卸载Docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
2.3 Docker命令
2.3.1 查看docker版本
- docker version
- docker info
三、镜像命令
镜像相当于一个类,容器相当于 类 的 实例
3.1 查看本地主机上所有的镜像
- docker images
- 可选项
- docker -images -a #查看所有的镜像 (all)
- docker -images -q #查看所有镜像的id (quite)
3.2 将镜像打包/将镜像压缩包解压
- 打包镜像:docker save -o 打包名.tar 镜像名:[TAG版本]
- 解压镜像包:docker load -i 打包名.tar
3.2 Docker镜像仓库
- docker search 镜像名
- 或者去网站搜索DockerHub docker的镜像仓库
3.3 下载镜像
3.4 镜像删除
- docker rmi -f 容器id force强制删除
- docker rmi -f 容器id 容器id 删除多个镜像
3.5 启动容器
创建并启动容器
- docker run [可选参数] image(镜像名) /bin/bash
- 可选参数
- -i 保持容器运行。通常与t同时使用
- -d 以守护(后台)模式运行容器后台方式运行
- -it 使用交互方式运行 进入容器查看内容
- –name 给容器起名
- id 创建的容器一般为守护式容器
- -p 端口映射:将宿主机端口与容器端口进行映射,冒号左侧是宿主机端口,冒号右侧是容器端口,当访问宿主机端口即可访问到容器端口
- bash:进入容器后执行的命令,bash是一个Linux终端交互命令
3.6 列出所有正在运行的容器
- docker ps
- 可选项 -a 列出当前正在运行的容器+带出历史运行过的容器
3.7 退出容器
- exit 退出容器并停止
- Ctrl+P+Q 容器不停止退出
3.8 删除容器
3.9 启动和停止容器
这里的启动是指 启动停止了的容器
- docker start 容器id
- docker restart 容器id
- docker stop 容器id
- docker kill 容器id
- docker pause 容器id 暂停运行的容器
- docker pause 容器id 取消暂停运行的容器
3.10 查看日志
- -t:时间戳
- -f:持续输出
- -nums 输出几条日志内容
- docker logs -tf --tail nums 容器id
3.11 查看进程信息
3.12 查看容器的元数据[常用]
3.12 进入当前正在运行的容器[常用]
- 二选一
- docker exec -it 容器id /bin/bash #进入容器后开启一个新的终端(退出后,容器不会关闭)
- docker attach 容器id #进入容器正在执行的终端,不会启动新的终端
3.13 从容器内拷贝文件到主机上
- docker cp 容器id:文件路径 拷贝到哪里
3.14 Docker部署Nginx
1. docker pull nginx 下载NGINX
2. docker images 查看NGINX镜像
3. docker run -d --name nginx01 -p 宿主机端口:容器内部端口 镜像
通过访问宿主机端口可以访问容器内部端口 映射关系
4. 请求 curl localhost:宿主机端口
端口暴露概念
3.15 commit镜像
docker commit 提交容器成为一个新的镜像副本
- docker commit -m=“提交的描述信息” -a=“作者” 容器id 目标镜像名:[TAG版本]
四、数据卷(volume)
- 数据卷:是一个虚拟目录,指向宿主机文件系统中的某个目录
4 数据卷基础语法
docker volume [command]:
docker volume 命令是数据卷操作,根据命令后的 command来确定下一步操作:
create:创建一个volume
inspect:显示一个或多个volume的信息
ls:列出所有的volume
prune:删除未使用的volume
rm:删除一个或多个指定的volume
4.1 挂载数据卷
docker run -it -v 主机目录: 容器目录
4.2 匿名挂载
-P :随机映射端口
docker run -d -P --name nginx01 -v /etc/nginx nginx
4.3 具名挂载
docker run -d -P --name nginx02 -v juming-nginx:
4.4 查看卷
4.5 DockerFile
- dockerfile:就是用来构建docker镜像的构建文件
- 镜像结构:
- 镜像是将应用程序及需要的系统函数库、环境、配置、依赖打包而成
指令 | 说明 |
---|
FROM | 指定基础指令 | ENV | 设置环境变,可在后面指令使用 | COPY | 拷贝本地文件到镜像的指定目录 | ADD | 添加文件 | CMD | 容器启动命令 | RUN | 执行Linux的shell命令,一般是安装过程的命令 | EXPOSE | 指定容器运行时监听的端口,是给镜像使用者看的 | ENTRYPOINT | 镜像中应用的启动命令,容器运行时调用 |
4.5.1 自定义DockerFile文件
# 指定基础镜像
FROM centos:7
#添加jar包 重命名
ADD springboot.jar app.jar
#容器启动命令
CMD ["java","-jar","app.jar"]
- 将上面的Dockerfile文件设置完毕后,再构建 dockerfile镜像
构建命令:docker build -f dockerfile文件路径 -t(tag表示版本) 新的镜像名称:自定义版本 .(.表示dockerfile寻址路径) 或 构建命令:docker build -t(tag表示版本) javaweb:1.0 .(.表示dockerfile在当前文件目录) - 基于
java:8-alpine 镜像,将一个Java项目构建为镜像
# 指定基础镜像
FROM java:8-alpine
# 拷贝java项目的包
COPY ./docker-demo.jar /tmp/app.jar
# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar
构建命令:docker build -t javaweb:2.0 .(.表示dockerfile在当前文件目录) 运行自定义镜像: docker run --name web -p 8090:8090 -d javaweb:1.0
4.6 Compose
Docker Compose是一个编排多容器分布式部署的工具,提供命令集中管理容器化应用的完整开发周期,包括服务
构建,启动和停止。使用步骤:
- 利用 Dockerfile 定义运行环境镜像
- 使用 docker-compose.yml 定义组成应用的各服务
- 运行 docker-compose up 启动应用
# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以
编译好的二进制包方式安装在Linux系统中。
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-
`uname -m` -o /usr/local/bin/docker-compose
# 设置文件可执行权限
chmod +x /usr/local/bin/docker-compose
# 查看版本信息
docker-compose -version
# 二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose
|