docker操作指南(二)

一.docker容器数据卷

1.作用

用于容器数据持久化,以及容器间继承+数据共享.

2.添加数据卷的方式

<1>直接命令添加
	①docker run -it -v /宿主机绝对路径目录:/容器类目录  镜像名
		eg: docker run -it -v /mydata:/home/test centos
	②查看数据是否挂载成功:
		docker inspect 容器Id
		查看里面的hostConfig	
<2>dockerFile添加:
touch dockerFile
vi dockerFile
	#volumn test
		FROM centos
		VOLUMN ["/dataVolumnContainer1","/dataVolumnContain2"]
		CMD echo "success..."
		CMD /bin/bash

以上dockerFIle相当于:
docker run -it -v /host1:/dockerVolumnContainer1 -v /host3:/dockerVolumnContainer2 centos /bin/bash

二.dockerfile

1.是什么:是用来构建docker镜像的文件,是由一系列命令和参数构成的脚本。
2.构建三步骤:

①编写dockerfile
②docker build
③docker run

3.保留字指令

1>FROM: 基础镜像,当前镜像是基于哪个镜像
2>MAINTAINER: 镜像维护者的姓名和邮箱地址
3>RUN: 容器构建时需要运行的命令
4>EXPOSE: 当前容器对外暴露出的端口号
5>WORKDIR: 指定在创建容器后,终端默认登录进来的工作目录,一个落脚点
6>ENV: 用来在构建镜像过程中设置环境变量
7>ADD: 将宿主机目录下的文件拷贝进镜像并且会自动处理URL和解压tar压缩包
8>COPY: 类似ADD,复制宿主机目录文件到镜像
9>VOLUME: 容器数据卷,用于数据保存和持久化工作
10>CMD: 指定一个容器启动时要运行的命令,dockerfile中可以有多个CMD,但只有最后一个生效,CMD会被docker run 之后的参数替换
11>ENTRYPOINT:指定一个容器启动时要运行的命令,ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及参数
12>ONBUILD: 当构建一个被继承的dockerfile时运行命令,父镜像在被子镜像继承后父镜像的onbuild 被触发。

4.案例
在这里插入图片描述
5.dockerfile中的ENTRYPOINT和CMD的区别
以ENTRYPOINT结尾的dockerfile生成的镜像,docker run 运行镜像时,后面添加的参数会被追加,而以CMD结尾的dockerfile生成的镜像,则会覆盖CMD命令。
6.制作tomcat9的镜像
在这里插入图片描述
启动制作好的镜像,-d后台运行,-v容器卷:
在这里插入图片描述

三.镜像推送到阿里云

  1. 登录阿里云Docker Registry

    $ sudo docker login --username=plcxtch1234 registry.cn-beijing.aliyuncs.com
     用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
    
  2. 从Registry中拉取镜像

     $ sudo docker pull registry.cn-beijing.aliyuncs.com/chenhaotest/my_chenhao_repo:[镜像版本号]
    
  3. 将镜像推送到Registry

     $ sudo docker login --username=plcxtch1234 registry.cn-beijing.aliyuncs.com
     $ sudo docker tag [ImageId] registry.cn-beijing.aliyuncs.com/chenhaotest/my_chenhao_repo:[镜像版本号]
     $ sudo docker push registry.cn-beijing.aliyuncs.com/chenhaotest/my_chenhao_repo:[镜像版本号]
     请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。
    
  4. 选择合适的镜像仓库地址

     从ECS推送镜像时,可以选择使用镜像仓库内网地址。
     推送速度将得到提升并且将不会损耗您的公网流量。如果您使用的机器位于VPC网络,请使用 
     registry-vpc.cn-beijing.aliyuncs.com 作为Registry的域名登录,并作为镜像命名
     空间前缀。
    
  5. 示例

     使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。
    
     $ sudo docker images
     REPOSITORY                                                         TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
     		registry.aliyuncs.com/acs/agent                                    0.7-dfb6816         37bb9c63c8b2        7 days ago          37.89 MB
     $ sudo docker tag 37bb9c63c8b2 registry-vpc.cn-beijing.aliyuncs.com/acs/agent:0.7-dfb6816
     使用"docker images"命令找到镜像,将该镜像名称中的域名部分变更为Registry专有网络地址。
    
     $ sudo docker push registry-vpc.cn-beijing.aliyuncs.com/acs/agent:0.7-dfb6816
    

附件:
https://blog.csdn.net/Mr_YanMingXin/article/details/119504925
https://blog.csdn.net/Mr_YanMingXin/article/details/119597321
https://blog.csdn.net/huangjhai/article/details/118854733

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值