刘曙尘

导航

docker常用命令

一、镜像操作

1、删除镜像(先删除容器):docker rmi mysql:latest / docker rmi 镜像id 

2、创建镜像:

    基于已有镜像创建 :docker  commit -m '提交信息'  -a  '作者信息'  容器id  别名

    基于本地模板导入: cat 镜像.tar.gz | docker import  -  别名:版本

3、存出和载入镜像:

    存出:docker save -o 导出目录和文件名.tar  源镜像id

    载入:docker load  <  导入目录和文件名.tar

4、查看本地所有镜像:docker images 

5、上传镜像:

    创建镜像标签:docker tag 镜像id   用户名/别名:版本

    上传镜像: docker push 用户名/别名:版本

二、容器操作

1、查看所有正在运行的容器或者查看所有容器: docker ps  /docker ps  -a / docker ps  -a -q(停)

2、创建并运行容器:docker run -it 镜像id  /bin/bash

    docker run 常用属性

        -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

        -d: 后台运行容器,并返回容器ID;

        -i: 以交互模式运行容器,通常与 -t 同时使用;

        -P: 随机端口映射,容器内部端口随机映射到主机的高端口

        -p: 指定端口映射,格式为:主机(宿主)端口:容器端口

        -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

        --name="nginx-lb": 为容器指定一个名称;

        --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

        --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

        -h "mars": 指定容器的hostname;

        -e username="ritchie": 设置环境变量;

        --env-file=[]: 从指定文件读入环境变量;

        --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

        -m :设置容器使用内存最大值;

        --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 

        --link=[]: 添加链接到另一个容器;

  --network :绑定容器到自定义网络中

        --expose=[]: 开放一个端口或一组端口;

        --volume , -v: 绑定一个卷

        --restart : 启动策略no 不自动重启容器. (默认值) on-failure 容器发生error而退出(容器退出状态不为0)重启容器,可以指定重启的最大次数,如:on-failure:10unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器always 在容器已经stop掉或Docker stoped/restarted的时候才重启容器,手动stop的不算

3、终止/启动/重启容器:

    终止:docker stop 容器id docker kill 容器id   

    启动:docker start 容器id 

    重启:docker start 容器id

4、进入容器:docker exec -it 容器id /bin/bash

5、删除容器:docker rm  -f  容器id / docker rm -f  name

6、导入导出容器:

    导出:docker export 镜像id >文件路径.tar

    导入:cat 文件路径.tar  | docker  import  -  用户/别名:版本

三、仓库

1、登录 docker login -u 用户名 -p 密码

2、搜索镜像:docker search mysql

3、下载镜像:docker pull mysql:latest

4.创建私有仓库:docker run -d  -p 5000:5000  -v  /docker/registry:/var/lib/registry registry

    echo '{ "insecure-registries":["ip:5000"] }' > /etc/docker/daemon.json

    docker push  ip:port/别名

    docker pull  ip:port/别名

四、网络设置

1、创建自定义网络

  docker network create --driver=bridge 别名

  docker run -itd --network=别名  镜像

2.查看已有网络

  docker network ls 

五、Dockerfile的使用

1.创建镜像

    #第一行必须指定基础镜像

    FROM centos:7

    #维护者信息

    MAINTAINER https://blog.51cto.com/andyxu

    #镜像的操作命令

    #1.ENV 指定一个环境变量 设置时区

    ENV TIME_ZOME Asia/Shanghai

    #2.ADD <SRC> <DEST> 添加本地文件到容器 压缩文件自动解压 src可以为一个url

    ADD $NV.tar.gz /tmp

    #3.COPY 拷贝本地文件到指定目录 目的文件不存在时自动创建

    COPY nginx.conf /data/nginx/conf/

    #4.RUN 运行命令

    RUN yum -y install gcc gcc-c++ make openssl-devel pcre-devel \

        && mkdir -p /data \

        && cd /tmp/$NV \

        && ./configure --prefix=/data/nginx \

        && make -j 2 \

        && make install \

        && echo "${TIME_ZOME}" > /etc/timezone \

        && ln -sf /usr/share/zoneinfo/${TIME_ZOME} /etc/localtime \

        && rm -rf /tmp/nginx* \

        && yum clean all \

        && yum -y remove gcc gcc-c++ make

    #5.ENTPYPOINT ["ZZZ"] 配置容器启动后执行的命令

    #6.VOLUME ["/data"] 创建挂载点

    #7.USER 指定运行容器的用户名字

    #8.WORKDIR 设置工作目录 .多个可用于切换目录

    #设置端口

    EXPOSE 80 22 8443

    #容器启动时执行命令 使用 exec执行 推荐使用 多个cmd只执行最后一个

    CMD ["./sbin/nginx","-g","daemon off;"]

2.运行镜像:docker build  -t  标签  文件路径

 

posted on 2020-04-25 19:20  刘曙尘  阅读(138)  评论(0编辑  收藏  举报