登录:docker login docker.io

镜像管理:

    查找:docker search XXX

    拉取镜像:docker pull xxx

    拉取指定tag的镜像:docker pull xxx:tag id

    查看本地镜像:docker images

    打tag:docker tag xxxxxxxxxxx docker.io/repository_name/xxxx:tag_id

    推送:docker push docker.io/repository_name/xxxx:tag_id

    删除:

        1:docker rmi docker.io/repository_name/xxx:tag_id。Untagged: repository_name/xxx:tag_id,这是只删除了 xxx:tag_id,但是镜像还在

        2:docker rmi 镜像id,如果出现 Error response from daemon: conflict: unable to delete xxxxxxxxxxx (must be forced) – image is referenced in multiple repositories,说明还有其他标签在用这个镜像。如果一定要删除,可以在后面加上参数:docker rmi -f 镜像id

    导出:docker save IMAGE_ID > REPOSITORY_NAME:TAG_NAME.tar

    导入:docker load < file_name。导入后,docker images 里面新导入的镜像没有 REPOSITORY_NAME 和 TAG_NAME,可以使用打tag的命令添加

    查看 容器/镜像 详细信息:docker inspect CONTAINER_ID 或 IMAGE_ID


容器操作:

    查看本地容器进程:docker ps -a [-a 是列出所有的]

    交互式启动容器:docker run -ti repository_name/xxx:tag id /bin/sh

    非交互式启动容易【运行结束后删除】:docker run –rm repository_name/xxx:tag_id

    非交互式启动后台容器:docker run -d –name xxx repository_name/xxx:tag_id

    进入运行中的容器:docker exec -it CONTAINER ID /bin/sh

    启动、停止、重启容器:docker start/stop/restart CONTAINER_ID 或 CONTAINER_NAME

    删除容器:docker rm CONTAINER_ID 或 CONTAINER_NAME

    删除运行中的容器【强制删除】:docker rm -f CONTAINER_ID 或 CONTAINER_NAME

    删除退出容器的小脚本:for i in `docker ps -a | grep -i exit | awk ‘{print $1}’`;do docker rm $i;done

    提交容器【容器转换为镜像】:docker commit CONTAINER_NAME NEW_IMAGE_NAME:TAG_NAME 【可以加参数 -p 意思是暂停容器,只提交当前容器】

    查看容器日志:docker logs CONTAINER_ID 【-f 是屏幕上动态输出日志,和 tail -f 一个道理】

docker run:

    启动时端口映射:docker run -p 容器外端口:容器内端口

        例:docker run –rm –name xxx -d -p81:80 repository_name/xxx:tag_id

    挂载数据卷:docker run -v 容器外目录:容器内目录

        例:docker run –rm –name xxx -d -p82:80 -v/usr/local/html:/usr/share/html repository_name/xxx:tag_id

    传递环境变量:docker run -e 环境变量key=环境变量value

        例:docker run –rm -e key1=abc -e key2=123 repository_name/xxx:tag_id printenv 【printenv是打印出环境变量,如果不需要可以不加】

dockerfile:

    docker build 可以生成docker镜像

        例:docker build PATH -t docker.io/repository_name/xxx:tag_id

    命令:

        指定user和工作目录:

            FROM docker.io/repository_name/xxx:tag_id

            USER nginx

            WORKDIR /usr/share/xxx/xxx

        把文件拷贝到docker某个目录,并且指定镜像内的端口

            FROM repository_name/xxx:tag_id

            ADD index.html /usr/share/xxx/xxx/index.html

            EXPOSE 80

        指定环境变量,并且使用RUN执行yum安装软件

            FROM centos:7

            ENV VER 9.11.4

            RUN yum install bind-$VER -y

        使用RUN安装软件,并且使用CMD运行命令

            FROM centos:7

            RUN yum install httpd -y

            CMD [“httpd”,”-D”,”FOREGROUND”]

        使用ENTRYPOINT执行某个可执行文件

        entrypoint.sh:

            #! /bin/bash

            /sbin/nginx -g “daemon off;”

        

        FROM centos:7

        ADD entrypoint.sh /entrypoint.sh

        RUN yum install epel-release -q -y && yum install nginx -y

        ENTRYPOINT /entrypoint.sh

发表评论

电子邮件地址不会被公开。 必填项已用*标注