zoukankan      html  css  js  c++  java
  • docker基础命令

    docker结构分为仓库、镜像、容器

    仓库:可以注册一个docker.hub的账号,创建一个自己的仓库

    镜像结构:

    registry_name/repository_name/image_name:tag_name
    比如 docker.io/library/alpine:lastest

    docker命令

    1.docker info

    显示docker目前各种状态

    2.镜像管理

    docker login docker.io #登录registry 
    
    docker search image_name   #搜索image_name 
    
    docker pull  image_name(:tag) #下载镜像
    
    docker tag f70734b6a266 docker.io/dhc102802/alpine:test #给镜像打标签,使用的是image id,打的标签要有完整镜像路径
    
    docker images  #查看本地镜像
    
    docker pull docker.io/dhc102802/alpine:test  #推送镜像,前提是标签打好,并且login完成
    
    docker rmi image_name #删除本地镜像的对应tag
    
    docker rmi image id  #删除本地镜像
    
    docker save image-id -0 alpine.tar.gz  #导出镜像为tar包,但是没有标签和名称
    docker save -o my.tar.gz  docker.io/dhc102802/alpine_with:test  #带有标签和名称
    docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
    docker save image-id > alpine.tar.gz
    docker load < alpine_with.tar.gz #导入包,或者-i 替换<
    #导入后包是没有镜像仓库名和tag的,需要重新tag
    
    
    

    3.容器操作

    docker ps #查看docker启动的容器进程
    	-a   #查看所有的
    	-l   #最近的
    	-q   #只显示容器启动的容器id
    	
    docker run #使用最多的命令
    	Usage:	docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    	-i 启动一个交互容器
    	-t 使用争端关联到输入输出
    	-it  这个一般都是合在一起使用
    	-d 放在后台
    	-rm 推出后立刻删除容器
    	-name 定义名称
    	-p 对应端口
    	-v 挂载的文件
    	--restart=always 自动重启
    docker run -it -d dhc102802/alpine:test /bin/sh #启动容器
    
    docker exec -it 487e772e40d0 /bin/sh #进入容器
    
    ctrl+d 退出不删除
    exit 同样
    
    docker stop container—id 关闭容器
    docker start container—id 启动容器
    docker restart container—id 重启容器
    docker rm container—id|name删除容器
    docker rm -f container—id|name 删除容器
    
    docker commit -p 487e772e40d0 dhc102802/alpine:with_change #保存修改的镜像
    	-p 是保存的时候,不会写入新的内容
    	docker commit continer—id|container—name image-name  #格式
     以后启动dhc102802/alpine:with_change 这个镜像就是已经修改过的了
    docker logs container-id 打印容器日志
    	-f 动态输出,和tail -f一样
    

    4.重要操作

    我把一些比较重要得操作单独放在这里分类
    
    #映射端口
     docker run -p 容器外端口:容器内端口
     docker run -it  --name my-nginx -d -p 100:80 dhc102802/nginx:v1  #将nginx得80端口对应到宿主机得100端口
     
    #挂载数据卷
    docker run -v 
    docker run -d -it --name nginx_baidu -p 81:80 -v /root/html:/usr/share/nginx/html dhc102802/nginx:v1  #挂载了鲁下来的百度主页
    
    #查看容器的详细信息
    docker inspect fad7ab4c518d 
    
    #传递环境变量 (很重要)
    生产环境下,可以只使用一个底包,根据需要设置不通的环境变量
    docker run --rm -e dhc=123 dhc102802/nginx:v1 printenv
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    HOSTNAME=d710cca3afc0
    dhc=123
    NGINX_VERSION=1.12.2-1~stretch
    NJS_VERSION=1.12.2.0.1.14-1~stretch
    HOME=/root
    
    #软件内安装服务
    #以nginx镜像为列,系统为debian
    1.更新源
    tee /etc/apt/sources.list << eof
    deb http://mirrors.ustc.edu.cn/debian stretch main contrib non-free
    deb http://mirrors.ustc.edu.cn/debian stretch-updates main contrib non-free
    eof
    2.安装需要的服务
    apt-get update && apt-get install curl -y   #需要先更新才能安装
    后面一般会进行commit + save
    
    ## echo "APT::Get::AllowUnauthenticated 1 ;" >>/etc/apt/apt.conf    #一直install 报错-y forse-yes报错,加了这个就好了
    
    
  • 相关阅读:
    鼠标移到某个对象上,显示小手的形状
    前端开发过程中的一些小知识点总结
    滚动新闻插件vticker
    tab选项卡
    给SqlParameter参数指定或不指定:@变量标识符的区别是什么?
    c# 一个记录日志的通用方法
    DataTable和实体类通过反射相互转换
    通过计算获得一个使用最少量充值卡满足充值额度的方案
    动态规划问题
    DFS排列组合问题
  • 原文地址:https://www.cnblogs.com/dinghc/p/12971350.html
Copyright © 2011-2022 走看看