首页 > 其他 > 详细

docker基础

时间:2020-11-15 18:26:17      阅读:48      评论:0      收藏:0      [点我收藏+]

 技术分享图片

 

 

Docker 安装

技术分享图片

 

 

 

centos7 安装方法  安装文档

 

 

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

打开连接  得到自己的专有镜像加速服务器地址及安装方法

常用命令

Docker version

Docker info

Docker --help

Docker images  查看本地仓库

Docker 仓库源地址  要不然安装特别不顺利

http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

完成之后还要进行一个更新YUM软件包索引  因为已经更改了REPO

 

 技术分享图片

 

 

 

 

 

Docker search tomcat   去DOCKER HUB 搜索镜像   查看信息

Docker rmi 删除镜像  删除多个  删除全部$(docker images -qa)

 

运行容器

 技术分享图片

 

 

Docker run -it centos

Docker run -it --name centos1 centos

Docker ps  列出正在运行的容器

Docker ps -a     列出所有的容器

退出当前容器exit 关闭并退出    ctrl P q  不停止退出

Docker start     docker restart    docker stop慢慢停    docker kill   强关

删除已停止的容器

Docker rm 如果是正在运行的加  -f

$(docker ps -lq)   就是取他下面的值

Docker rm 删除容器

Docker run -d 容器    如果没 有任务就自动退了   机制问题

解决办法

docker run -d centos /bin/sh -c "while true;do echo hello;sleep 2;done"

Docker logs 容器ID  可以查看到刚才打印的HELLO ZZYY

Docker top 容器ID    查看容器进程

Docker inspect  查看容器细节

 

Docker attach 容器ID   进入到容器

Docker exec 直接在外面执行容器内的命令

docker exec -t $(docker ps -lq) ls -l /tmp

    docker exec -t $(docker ps -lq) ls -l /tmp

docker cp a3c97d761e26:/tmp/a.txt /root/     复制文件到宿主机

 

Docker commit -m=”提交的描述信息” -a=”作者” 容器ID要创建的目标镜像名:[标签名]

 

Docker run -it -v /宿主机绝对路径目录:/容器内目录  镜像名

 

Dockerfile

新建一个DOCKERFILE文件

FROM centos

VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]

CMD echo "finished, success1"

CMD /bin/bash

 技术分享图片

 

 

Docker build -f /mydocker/dockerfile -t xiaoxu/centos    -f 要用以下文件   -t类似命名空间

 

 技术分享图片

 

 

 

 

继承卷  就是以一个容器为父容器  再开的容器继承这个容器的卷信息

docker run -it --name xiaoxu22 --volumes-from xiaoxu xiaoxu/centos

 

 

Dockerfile 文件要点

步骤1手动编写 一个DOCKERFILE文件,当然,必须要符合 FILE 的规范

步骤2有这个文件 后,直接 DOCKER BUILD命令执行,获得一个自定义的镜像

步骤3 run

基础知识

1:每条保留字指令都必须是大写,而且必须 跟一个参数

2:指令按照从上到下,顺序执行

3:#表示注释

4:每条指令都 会创建一个新的镜像层,并对镜像提交

流程

1  docker 从基础镜像运行一个容器

2  执行一条指令并对容器作出修改

3 执行类似DOCKER COMMIT的操作提交一个新的镜像层

4  DOCKER再基于刚提交的镜像运行一个新容器

5  执行DOCKERFILE中的下一条指令直到所有指令都执行完成

保留字的作用

FROM 基础镜像,当前镜像是基于哪个镜像

MAINTAINER 镜像维护都 的名字和邮箱

RUN   容器创建时需要执行的命令

EXPOSE 当前容器对外暴露出的端口

WORKDIR 指定一个落脚点

ENV 设置环境变量

ADD 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压 TAR压缩包

COPY 只是拷贝

VOLUME 容器数据卷,用于数据保存和持久化工作

CMD 指定一个容器启动时要运行的命令,DOCKERFILE中可以有多个CMD 指令,但只有最后一个生效,CMD会被DOCKER RUN之后的参数替 换

ENTRYPOINT 和CMD基本一样,有点倾向于追加

ONBUILD 可以在被继承的时候触发某些操作

Dockerfile举例

FROM CENTOS CENTOS是本地镜像名

MAINTAINER ZZZYYY<275943182@QQ.COM>   作者信息

ENV MYPATH /usr/local 设置环境变量

WORKDIR $MYPATH 设置工作目录 ,落脚点

RUN yum -y install vim 把VIM安装进镜像里

RUN yum -y install net-tools 把IFCONFIG安装进镜像里

EXPOSE 80 对外暴露80端口

CMD echo $MYPATH 进入镜像先执行显示MYPATH变量

CMD echo “success”

CMD /bin/bash 运行指定程序一般只有最后一个CMD被执行   

Docker history mycentos 查看历史

docker run tomcat:8.5.32 ls -l   这样TOMCAT就不会执行了,因为在最后用LS -L覆盖了

举例

FROM centos

ENTRYPOINT ["curl","http://www.baidu.com"]

如果用CMD不能给CURL加参数 但是我们用了ENTRYPOINT就可以加-I的参数

 

Docker push 到阿里云

需要先COMMIT成本地的一个镜像

Docker commit -a zzyy -m “new mycentos 1.4 from 1.3” [id] mycentos:1.4.1

然后在自己的阿里去里面建立一个仓库

https://Cr.console.aliyun.com

$ sudo docker login --username=xpf22@126.com registry.cn-hangzhou.aliyuncs.com

$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/blockhead/mycentos:[镜像版本号]

$ sudo docker push registry.cn-hangzhou.aliyuncs.com/blockhead/mycentos:[镜像版本号]

 

docker基础

原文:https://www.cnblogs.com/xupanfeng/p/13977480.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!