docker学习

1 篇文章 0 订阅

常用命令

docker create --name 容器名称 -it -p 80:80 nginx:latest
docker start 容器名称/id

====>
docker run --name 容器名称 -it -p 80:80 nginx:latest
查看所有容器
docker ps -a

停止
docker pause 容器id
终结
docker stop 容器id

进入容器
docker attach 容器id
docker exec -it 容器id /bin/bash (推荐)

搭建docker仓库

1.vi /etc/docker/daemon.json 加入这些内容,一个是镜像源换成国内的,第二个是添加信任的https,ip就是你当前仓库所在的服务器外网ip。免得在push的时候出现下列错误。


{
        "registry-mirrors": ["http://hub-mirror.c.163.com"],
        "insecure-registries":["ip:5000"]
}

[root@VM-8-8-centos data]docker push ip:5000/mynginx
Using default tag: latest
The push refers to repository [ip:5000/mynginx]
Get https://ip:5000/v2/: http: server gave HTTP response to HTTPS client

2.systemctl daemon-reload重新加载配置
3.systemctl restart docker重启docker
4.docker run -d -p 5000:5000 -v /usr/data/docker/registry:/var/lib/registry registry
将上传的镜像放到 /usr/data/docker/registry 默认在/var/lib/registry

测试提交
5.docker push ip:5000/mynginx
可以去刚刚那个仓库看一下 /usr/data/docker/registry

测试拉取
6.docker pull ip:5000/mynginx

[root@aliyun ~]# curl http://ip:5000/v2/_catalog
{"repositories":["mynginx"]}


dockerFile编写

#定义变量
ARG VERSION=9.9
#指定基础容器
FROM debian:${VERSION}
#给镜像打标签,为了辅助过滤出特定的镜像
LABEL version=“1.0.0”
LABEL author=“test@github” date=“2020-01-01”
LABEL description=“This text,that label-values can span multiple lines”
#声明镜像内服务监听的端口,但只是声明作用,镜像运行的端口映射需要run时候指定-p 或者 -P
EXPOSE 22
#指定环境变量,在镜像生成过程中会被后续RUN指令使用,在镜像启动的容器中也会存在
ENV APP_VERSION=1.0.0
ENV APP_HOME=/usr/local/app
ENV PATH $PATH:/usr/local/bin
#该ENV在运行时可以被覆盖 如docker run --env =

#创建一个数据卷挂载点 存放数据库或者需要保持的数据
VOLUME ["/data/testvolume"]

#USER可以配置当前镜像运行时为指定的用户身份 -u 也可以

#WORKDIR 为后续的run cmd entrypoint配置工作目录
WORKDIR /path/to/workdir
#如果配置多个,则后面的会作为前面的相对路径
#WORKDIR /a
#WORKDIR b
#WORKDIR c
#RUN pwd
#则最终run的pwd=/a/b/c

#ONBUILD 在基于此镜像创建子镜像时自动执行的部分
ONBUILD ADD ./app/src
ONBUILD RUN /usr/local/bin/python-build --dir /app/src

#指定所创建镜像启动的容器接收推出的信号值
STOPSIGNAL signal

#HEALTHCHECK
HEALTHCHECK -interval=duration(过多久检测一次默认30s) -timeout=duration(等待检测结果的超时时间默认30s) -retries=N(如果失败重试几次后才确定失败默认3)

#指定其他命令使用shell时的默认shell类型,shell会影响后续的指令的执行方式
shell [“executable”,“parameters”] 默认为["/bin/sh","-c"]
#当机器是windows(\作为分割)需要在文件开头添加 # escapse=’

#操作指令

run 或者run [“executable”,“param1”,“param2”]
#后者命令会被解析为json所以需要双引号
#后者则使用exec执行,前者默认在shell中执行

ADD 路径支持正则格式
COPY

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值