• Docker安装及简单使用(Ubuntu)


    ### Ubuntu18下docker安装
    * step 1: 安装必要的一些系统工具
    sudo apt-get update
    sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
    * step 2: 安装GPG证书
    curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    * Step 3: 写入软件源信息
    sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
    * Step 4: 更新并安装 Docker-CE
    sudo apt-get -y update
    sudo apt-get -y install docker-ce
    ### 其他版本Ubuntu下安装Docker
    1. 清除之前安装的
    sudo apt-get remove docker docker-engine docker.io
    2. 更新系统库
    sudo apt-get update
    3. 安装curl等工具
    sudo apt-get install
    apt-transport-https
    ca-certificates
    curl
    software-properties-common
    4. 添加镜像源key
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo apt-key fingerprint 0EBFCD88
    5. 添加镜像源
    sudo add-apt-repository
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu
    $(lsb_release -cs)
    stable"
    sudo apt-get update
    6. 安装docker-ce
    sudo apt-get install docker-ce
    7. 再安装docker-compose
    sudo apt-get install docker-compose
    ### Docker基础命令
    * docker login 登录docker
    * docker logout 退出登录
    * docker search imageName 搜索指定镜像名的镜像
    * docker pull ImageName:Version 拉取指定版本镜像
    * docker commit containerID tagName 提交容器更改到镜像
    * docker tag sourcetag newtag 打标签
    * docker push tagName 将自己的镜像推送到仓库
    * docker build -t tagName -f DOCKERFILEPath contextPath 创建镜像,指定镜像tag和DOCKERFILE文件路径以及上下文路径,若未指定DOCKERFILE的路径则会查找上下文路径下的DOCKERFILE文件(镜像打包方式会将上下文路径下的所有文件都传到docker服务端进行打包操作,所以指定上下文时需保证上下文路径下都是打包需要用到的文件,COPY等文件操作时也需要保证需要操作的文件处于上下文路径下)
    * docker save imageName fileName 将指定镜像打包成文件
    * docker load -i fileName 加载指定镜像文件
    * docker run ImageName -i让容器标注输入打开 -t分配一个伪终端 -d后台运行 -p newPort:originPort指定映射出的端口 -v newVolumns:originVolimns指定卷 --mount source=volumnName|dirPath,target=filePath(in container) --name containerNmae 指定启动容器的名字
    * docker start containerName 启动一个已经停止了的容器
    * docker logs [containerID|NAMES] 查看一个容器的日志
    * docker stop containerName 终止一个容器
    * docker exec -it containerNmae bash 使用bash进入容器内部
    * docker attach container 进入容器(但exit来退出时容器也会终止)
    * docker import originFile tagName 从指定文件或者地址导入镜像为指定标签
    * docker rm containerName 删除指定容器
    * docker rmi imageName 删除置顶镜像(删除前确认是否还有由镜像启动的容器,也需要删除)
    * docker volumn create volumnName 创建一个数据卷
    * docker volumn inspect volumnName 查看一个数据卷信息
    * docker volumn rm volumnName 移除一个数据卷
    ### DOCKERFILE文件规则
    * FROM baseOSName 指定基础镜像
    * MAINTAINER maintainerInfo 维护人员信息
    * RUN cmd 执行命令行命令(1.shell方式:直接执行shell命令,2.exec方式:RUN [可执行文件,参数1,参数2]),可以多个命令用&&符链接
    * COPY [--chown=<user>:<group>] originFilePaths aimPath 将上下文下的文件拷贝到镜像中的指定目录(originFilePath支持正则匹配GO语言的filepath.Match)
    * ADD [--chown=<user>:<group>] origin aimPath 拷贝指定文件到指定目录下(支持origin为网络地址,且所有网络地址下载的文件权限都为600,若指定文件为tar文件压缩格式为gizp、bzip2及xz时,ADD命令会自动解压改文件到指定目录下)
    * CMD <命令>|["可执行文件","参数1","参数2"] 执行命令,一般用作指定启动主进程命令
    * ENTRYPOINT "<CMD>" 执行程序入口(主进程),当指定ENTRYPOINT后CMD命令即会被作为参数传入到ENTRYPOINT命令中,docker启动时也可以通过指定--entrypoint参数来指定程序入口,程序需为绝对路径!
    * ENV <key> <value>|key1=value1 key2=value2 指定环境变量,RUN命令以及镜像内应用都可以使用这些环境变量
    * ARG key1=value1 key2=value2 指定构建参数,同环境变量一样,只是指定的环境变量在容器中不可以使用
    * VOLUME ["<路径1>","<路径2>"...]|<路径> 定义匿名卷,所有向匿名卷写入的内容都不会保存在容器的存储层,docker容器启动时可以指定挂载来替代,-v aimPath:VolumePath这样将容器中的目录指定到镜像外的目录(永久保存)
    * EXPOSE <端口1>|[<端口2>...] 声明开放端口(仅仅声明,实际端口开放需要另外操作)做容器服务端口的映射到宿主机可以在启动容器时指定 -p 宿主机端口:容器提供服务器端口
    * WORKDIR <工作目录路径> 指定工作目录即为指定当前所处目录
    * USER <用户名>[:<用户组>] 指定当前用户
    #### 注意事项
    RUN、CMD、ENTRYPOINT的区别
    RUN 为系统安装软件
    CMD 镜像启动时执行的指令,会被docker run中的指令替换
    ENTRYPOINT 指定程序入口,指令和路径需为全路径 
  • 相关阅读:
    SpringBoot学习:整合shiro(验证码功能和登录次数限制功能)
    SpringBoot学习:整合shiro(rememberMe记住我功能)
    SpringBoot学习:整合shiro(身份认证和权限认证),使用EhCache缓存
    SpringBoot学习:整合Redis
    SpringBoot学习:获取yml和properties配置文件的内容
    SpringBoot学习:使用spring-boot-devtools进行热部署
    SpringBoot学习:添加JSP支持
    SpringBoot学习:整合MyBatis,使用Druid连接池
    DL杂谈
    YOLO3训练widerface数据集
  • 原文地址:https://www.cnblogs.com/huangxinyuan650/p/12045110.html
Copyright © 2020-2023  润新知