Docker容器化技术

目录

1.docker社区免费版(docker ce)安装 

2. Docker常用命令

2.1 docker服务相关命令

2.1 docker操作镜像命令

2.2 docker常用操作容器命令

2.2.1 docker创建容器的方式

2.2.2 其他常用操作容器命令

3. docker容器的数据卷

3.1 数据卷概念

​编辑

 3.2 配置数据卷

4. dockerfile

4.1 镜像原理

4.2 docker容器转成镜像

4.2.1 docker的commit命令

4.2.2 dockerfile文件

4.3 Dockerfile案例

5. docker compose

5.1 docker compose概念及应用

5.2 docker-compose安装


 

1.docker社区免费版(docker ce)安装 

这里主要介绍 Docker CE 在 CentOS上的安装。

  1.  如果之前安装有docker,可以通过下面命令卸载docker
    yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-selinux \
                      docker-engine-selinux \
                      docker-engine \
                      docker-ce
  2. 安装yum工具
    yum install -y yum-utils \
               device-mapper-persistent-data \
               lvm2 --skip-broken
  3. 更新本地镜像源,设置为阿里云镜像源,下载更快
    # 设置docker镜像源
    yum-config-manager \
        --add-repo \
        https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
        
    sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
    
    yum makecache fast
  4. 执行yum安装命令
    yum install -y docker-ce

2. Docker常用命令

2.1 docker服务相关命令

  • systemctl start docker    #启动docker服务
  • systemctl stop docker    #停止docker服务        
  • systemctl restart docker   #重启docker服务
  • systemctl status docker    #查看docker服务状态
  • systemctl enable docker    #开机(虚拟机)启动docker服务,命令执行之后,每次都不用手动启动docker服务了

2.1 docker操作镜像命令

镜像,暂时可以简单理解为软件的安装包

  • docker images    #查看本地所有的镜像
  • docker search + 镜像名    #搜索镜像
  • docker pull 镜像名:版本    #到中央仓库或者远程仓库拉取某个版本的镜像,没有写版本就默认拉取最新版本的
  • docker rmi 镜像名:版本 | IMAGE ID   #删除某镜像
  • docker rmi `docker images -q`    #删除所有的镜像, docker images -q 查询本地所有镜像id

2.2 docker常用操作容器命令

2.2.1 docker创建容器的方式

  • docker run -id --name=容器名 镜像名:版本    #不会进入容器的方式创建容器
  • docker run -it --name=容器名 镜像名:版本 /bin/bash    #创建容器并进入容器内部
  • docker run -id --name=容器名 -p 宿主机端口号:容器端口号 镜像名:版本

i:表示容器有无客户端连接都会一直运行着,没有i默认无连接时容器会关闭

-p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口

d:表示后台运行

t:伪终端,进入容器时会分配一个终端用来接收命令(我也不是很理解)

/bin/bash:表示进入容器脚本文件

2.2.2 其他常用操作容器命令

  • docker ps    #查看正在运行的容器
  • docker ps -a    #查看本地所有的容器
  • docker exec -it 容器名|容器ID bash    #进入正在运行中的容器
  • docker stop 容器名|容器ID    #关闭容器   
  • docker start 容器名|容器ID    #启动容器   
  • docker rm [-f] 容器名|容器ID    #删除容器,有-f能删除正在运行的容器
  • docker rm `docker ps -a`     #批量删除容器
  • docker inspect 容器名    #查看容器信息
  • docker cp 容器名:容器中的文件 本地目录  把容器中的文件复制到本地
  • docker logs -f 容器名|ID    持续查看容器日志

3. docker容器的数据卷

3.1 数据卷概念

数据卷其实就是宿主机中的一个目录或文件,宿主机就是容器运行之上的环境(虚拟机)。如下图所示,一个数据卷可以被多个容器挂载,一个容器也可以挂载多个数据卷。数据卷可以持久化和同步容器的数据。

84d923cadbda4d39b3c31bf259a5d4b8.png

 3.2 配置数据卷

配置数据卷有两种方式:

  • docker run -id --name=容器名 -v 宿主机目录:容器内目录 [-p 宿主机端口号:容器端口号] 镜像名:版本
  • docker run -id --name=容器名(a1) -v /volume 镜像名:版本    创建数据卷容器                            docker run -id --name=a2 --volumes-from a1 镜像名:版本   新的容器挂载数据卷容器

注意:目录不存在可以自动创建;数据卷容器配置时,镜像名:版本  都是相同的

4. dockerfile

4.1 镜像原理

docker镜像是由特殊的文件系统叠加而成,是一个分层文件系统,但用户只看到一个文件系统。最低端的是bootfs,并使用宿主机的bootfs;第二层是root文件系统rootfs,是基础镜像;往上就是叠加的其他镜像。

一个镜像可以放在一个镜像的上面,位于下面的镜像称为父镜像,最底部的镜像是基础镜像。所以,是因为它们基础的父镜像不同。docker加载这些安装包成为镜像时,需要先加载父镜像,所以有些镜像比实际安装包大,如下图所示,Tomcat镜像是以JDK镜像为基础的;有的父镜像复用了Linux提供的基础镜像,所以有些镜像比实际安装包小。

当一个镜像启动成容器时,docker会在最顶层加载一个读写文件系统成为容器。75cb20dc51da4ffd8f753f0c2818ea85.png

4.2 docker容器转成镜像

有两种方式,第一种方式一般不用

4.2.1 docker的commit命令

  • docker commit 容器id 镜像名称:版本号    将容器转成镜像
  • docker save -o 压缩文件名称 镜像名称:版本号   将镜像输出成压缩文件(用来传输的)
  • docker load -i 压缩文件名称    将压缩文件加载成镜像

通过commit命令提交的转换,数据卷目录不会转成镜像,但可以重新挂载到相同的数据卷,实现数据同步。

4.2.2 dockerfile文件

Dockerfile是一个文本文件,有一条条指令用来构造每一层镜像,最终构建出一个新的镜像。

4.3 Dockerfile案例

需求:定义dockerfile,发布springboot项目

实现步骤:

  1. 定义父镜像:FROM Java:8
  2. 定义作者信息: MAINTAINER 作者信息
  3. 将jar包添加到容器: ADD springboot.jar app.jar
  4. 定义容器启动执行的命令: CMD java -jar app.jar
  5. 通过dockerfile构建镜像: docker build -f dockerfile 文件路径 -t 镜像名称:版本号

前四步都是写作dockerfile里的内容,第五步是在Linux系统中写的操作命令。部署项目时将dockerfile文件给运维即可,也可以直接给用idea编译的jar包。

5. docker compose

5.1 docker compose概念及应用

Docker Compose是一个编排多容器的分布式部署工具,可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器! 使用步骤:

  1. 在compose文件定义运行环境镜像
  2. 使用docker-compose.yml定义组成应用的各种服务
  3. 运行docker-compose up 启动应用

600322157236438eaa636d7d462dd11b.png

5.2 docker-compose安装

第一种方式:

安装epel源

yum install -y epel-release

安装docker-compose

yum install -y docker-compose

第二种方式:

Linux下直接通过命令下载 ,没有配置镜像源的可能会比较慢。

# 安装
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

 

 

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我追的番怎么还不完结

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值