docker镜像操作

commit镜像

在这里插入图片描述

数据卷操作实战:mysql同步

mysql运行容器,需要做数据挂载,安装启动mysql是需要配置密码的这一点要注意,所以要去docker hub官方文档上面去看官方配置

docker pull mysql:5.7

docker运行,docker run的常用参数这里我们再次回顾一下

-d 后台运行
-p 端口映射
-v 卷挂载
-e 环境配置
--name 环境名字

通过docker hub我们找到了官方的命令:docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag,在修改一下得到我们最终的输入命令

docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=12345678 --name mysql01 mysql:5.7
CREATE DATABASE test_db;

在这里插入图片描述

在这里插入图片描述
删除这个镜像后数据则依旧保存下来了
在这里插入图片描述

具名/匿名挂载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
大多数情况下,为了方便,我们会使用具名挂载
在这里插入图片描述

Dockerfile

Dockerfile就是用来构建docker镜像的文件,命令脚本,通过这个脚本可以生成镜像。
构建步骤

  1. 编写一个Dockerfile
  2. docker build 构建成为一个镜像
  3. docker run 运行镜像
  4. docker push 发布镜像(DockerHub,阿里云镜像)

这里我们可以先看看Docker Hub官方是怎么做的
在这里插入图片描述
在这里插入图片描述
官方镜像是比较基础的,有很多命令和功能都省去了,所以我们通常需要在基础的镜像上来构建我们自己的镜像
在这里插入图片描述

Dockerfile命令

常用命令用法
FROM基础镜像,一切从这开始构建
MAINTAINER镜像是谁写的,姓名+邮箱
RUN镜像构建的时候需要运行的命令
ADD添加内容,如tomcat压缩包
WORKDIR镜像的工作目录
VOLUME挂载的目录
CMD指定这个容器启动时要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT指定这个容器启动时要运行的命令,可以追加命令
ONBUILD当构建一个被继承DockerFile这个时候就会执行ONBUILD命令
COPY类似ADD将文件拷贝到镜像当中
ENV构建的时候设置环境变量

在这里插入图片描述

创建一个自己的centos

Dockerfile中99%的镜像都来自于这个scratch镜像,然后配置需要的软件和配置来进行构建。

mkdir dockerfile
cd dockerfile
vim mydockerfile-centos

编写mydockerfile-centos

FROM centos
MAINTAINER khan<khany@foxmail.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "---end---"
CMD /bin/bash

然后我们进入docker build,注意后面一定要有一个.号

docker build -f mydockerfile-centos  -t mycentos:1.0 . 

然后我们通过docker run -it mycentos:1.0命令进入我们自己创建的镜像测试运行我们新安装的包和命令是否能正常运行。
在这里插入图片描述
我们可以通过 docker history +容器名称/容器id看到这个容器的构建过程。
在这里插入图片描述

CMD和ENTRYPOINT区别

在这里插入图片描述

dockerfile-cmd-test:

FROM centos
CMD ["ls","-a"]

dockerfile-entrypoint-test:

FROM centos
ENTRYPOINT ["ls","-a"]

执行命令docker run 容器名称 -l在CMD下会报错,命令会被后面追加的-l替代,而-l并不是有效的linux命令,所以报错,而ENTRYPOINT则是可以追加的则该命令会变为ls -al
在这里插入图片描述

发布镜像

发布到Docker Hub

  1. 地址 https://hub.docker.com/ 注册自己的账号
  2. 确定这个账号可以登录
  3. 在我们服务器上提交自己的镜像
  4. 登录成功,通过push命令提交镜像,记得注意添加版本号
    在这里插入图片描述
    这里出了一点小问题:
    在build自己的镜像的时候添加tag时必须在前面加上自己的dockerhub的username,然后再push就可以了
    在这里插入图片描述
docker tag 镜像id YOUR_DOCKERHUB_NAME/firstimage
docker push YOUR_DOCKERHUB_NAME/firstimage

在这里插入图片描述
提交成功,可以在docker hub上找到你提交的镜像
在这里插入图片描述

阿里云镜像提交

在阿里云的容器镜像服务里面,创建一个新的镜像仓库,然后就会有详细的教学,做法与docker hub基本一致,提交成功能在镜像版本当中查看到,这里就不再重复讲解了。
在这里插入图片描述

Docker镜像操作过程总结

在这里插入图片描述
在这里插入图片描述

参考链接:【狂神说Java】Docker最新超详细版教程通俗易懂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值