美文网首页
Docker基本命令

Docker基本命令

作者: 发条家的橙子 | 来源:发表于2019-07-21 08:59 被阅读0次

    基本命令

    # 查看docker的image
    docker images
    
    # 获取imager
    docker image pull nginx
    
    ## 删除img
    docker rmi id
    
    # 运行
    ## 交互运行
    docker run -it ubuntu
    # -p 映射端口, -d 后台运行
    docker run -p 8080:80 -d nginx  
    # 查看正在运行的服务
    docker ps
    docker ps -a # 查看历史记录
    # 拷贝文件到容器中// nginx默认目录是/usr/share/nginx/html
    docker cp index.html 容器ID://usr/share/nginx/html
    
    # 停止运行
    docker stop ID
    
    # 停止后再次运行原来拷贝的会丢失
    # 使用commit保存后可在images中查看
    -a :提交的镜像作者;
    -c :使用Dockerfile指令来创建镜像;
    -m :提交时的说明文字;
    -p :在commit时,将容器暂停。
    docker commit -m "提交说明" -a "silas" f6e029f9f5a5 mynginx:v1
    
    
    

    Dockerfile

    github上的示例

    FROM

    From scratch # 制作base image(尽量使用官方image作为base image)

    FROM  centos
    From ubuntu:14.04
    

    Label

    打标签

    LABEL maintainer="Silas"
    LABEL version="1.0"
    LABEL description="This is description"
    

    RUN

    为了美观复制的RUN使用反斜线换行!

    避免无用分层,合并多行命令成一行

    RUN yum updata && yum install -y vim \
        python-dev  # 反斜线换行
    

    WORKDIR

    用workdir,不用用RUN cd!尽量使用绝对目录

    WORKDIR /test   # 没有/test会自动创建/test
    WORKDIR demo
    RUN pwd     # 此时会输出 /test/demo
    

    ADD or COPY

    大部分情况COPY由于ADD!ADD还有额外解压缩功能!添加远程使用curl或wget

    ADD TEST.tar.gz /   # 添加到根目录并解压
    

    ENV

    尽量使用,增加可维护性!

    ENV MYSQL_VERSION 5.6       # 设置常量
    RUN apt-get install -y mysql-server = "${MYSQL_VERSION }"\
        && rm -rf /var/lib/apt/lists/*  # 引用常量
    

    CMD && ENTRYPOINT

    RUN:执行命令并创建新的image layer

    CMD:设置日期启动后默认执行的命令和参数

    docker run 制定了其他命令,CMD会被忽略,定义多个只有最后一个会被执行

    ENTRYPOINT:设置日期启动时运行的命令

    不会被忽略,移动会执行

    镜像发布

    docker login # 登录

    docker push rudefish/helloworld:latest # 提交

    可登录查看

    拉取到本地docker pull rudefish/helloworld:latest

    # 创建一个文件Dockerfile
    FROM alpine:latest
    MAINTAINER Silas
    CMD ecjo "Hello world!"
    
    # 编译
    docker build -t myfile ./
    
    # 运行
    docker run myfile
    
    

    现在本地生成一个打印helloworld的可执行文件,在加到image的/下,然后执行

    FROM scratch
    ADD DockerWork /
    CMD ["/DockerWork"]
    

    编写一个安装vim后的dockerfiles文件

    FROM centos
    RUN yum install -y  vim
    

    其他人拿到dockerfile后到本地build即可

    docker container

    #查看
    docker container ls -a
    # 简写
    docker ps -a
    # 删除一个
    docker rmi ID
    # 删除全部
     1、查看所有>docker container ls -a
     2、查看所有的ID>docker container ls -aq
     3、删除>docker rm $(docker container ls -aq)
     # 删除status位exited的
    docker rm $(docker container ls -f "status=exited" -q)
    

    Rggistry

    # 搜索镜像
    docker search nginx
    

    搭建私人dockerhub

    搜索registry

    docker run -d -p 5000:5000 --restart always --name registry registry:2
    

    push

    # 重新编译
    docker build -t ip:port/hrllo-world .
    

    建立可信连接

    1、 在 /etc/docker/下新建一个文件

    {"insecure-registries":["ip:port"]} > /etc/docker/deamon.json

    2、 编辑docker启动文件

    vi /lib/systemd/system/docker.service

    添加一行: EnvironmentFile = /etc/docker/daemon.json

    3、 重启docker

    4、验证

    pull后查看ip:pore/v2/_catelog

    相关文章

      网友评论

          本文标题:Docker基本命令

          本文链接:https://www.haomeiwen.com/subject/clwyhctx.html