zoukankan      html  css  js  c++  java
  • Docker 常用命令

     创建容器并启动 docker run -e TZ="Asia/Shanghai" -d -t -i -p 3307:3306  --restart=always -v /dir/docker/mysql5.7:/etc/mysql/conf.d -v /dir/docker/mysql5.7:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql5.7 镜像ID

    docker中常用的命令:

    1、docker search image_name:搜查镜像

    2、docker pull image_name:从镜像库中拉去镜像

    3、docker run image_name:运行容器

      --restart=always:容器退出后重新启动

      --name:自定容器名字

      --d:后台运行容器

      --i:交互模式

      --t:打开一个伪终端

      --v:将容器中某个文件(目录)影射到主机上的某个文件(目录)

      --p:将容器中的某个端口号影射到主机上的某个端口号

    4、docker logs container:查看某个容器运行日志

    5、docker (start | stop | restart) container:启动、停止、重启某个容器

    6、docker rmi imager:删除某个镜像

    7、docker rm container:删除某个容器

    8、docker ps:查看运行的容器

      --a:查看所有容器

    9、docker exec container bash:在容器中运行shell命令

      -i -t:进入容器的shell终端

    10、docker build:通过Dockerfile构建一个镜像

      --t:镜像名称

      --rm=true:构建完成后,删除中间容器

        --no-cache=false:构建过程中不使用缓存

    11、docker inspect container:查看容器低层信息

    12、镜像重命名  docker tag 镜像ID 仓库:标签

    13、docker update --restart=always 容器ID:更改容器启动方式

    --restart具体参数值详细信息: 
    no - 容器退出时,不重启容器; 
    on-failure - 只有在非0状态退出时才从新启动容器; 
    always - 无论退出状态是如何,都重启容器;

    导入导出镜像:

      导入:docker load < /test/nginx.tar.gz

      导出:docker save nginx > /test/nginx.tar.gz

    docker run -it -d --name web2 --link web1 -p 9092:80 nginx

    --link:链接到web1这个容器


    进入容器不退出
    1、进入容器
    docker run --name mydocker -it docker.io/centos /bin/bash
    2、退出
    3、启动容器
    docker ps -a查询ID号
    docker start ID号
    4、获取Pid号
    docker inspect --format "{{.State.Pid}}" 68e5c66ee5c9
    5、进入容器而不退出【快捷操作:ctrl+p+q】
    nsenter --target 19205 --mount --uts --ipc --net --pid 退出不停止运行容器
    如果没有这个命令,需要安装util-linux包 nsenter

    6、懒人写法
    nsenter --target `docker inspect --format "{{.State.Pid}}" ID` --mount --uts --ipc --net --pid
    docker 网络访问
    docker run -P
    -P 随机映射
    -p hostport:containerPort
    -p ip:hostPort:containerPort
    -p ip::containerPort
    -p hostPort:containerPort
    -p hostPort:containerPort

    数据卷管理

    docker run -it --name node --rm -v /data centos bash 将系统根映射到容器data目录【可读写】

    docker run -it --name node --rm -v /opt/:/opt/:ro centos bash 将系统opt目录映射到容器opt目录【ro表示只读】


    docker
    -v /data
    -v /src:/dsrc
    -v /src:/src:ro

    容器的制作
    docker commit -m "my nginx" f443e801f545 test/my-nginx:v1
    Docker file 的方式构建docker镜像

    FROM 他的妈妈是谁(基础镜像)
    MAINTAINER 告诉被人,你创造了他(维护者信息)
    RUN 你想让他干啥(把命令前面加上RUN)
    ADD 相当于cp命令(COPY文件,会自动解压)
    WORKDIR 相当于cd命令(当前工作目录)
    VOLUME 给我一个放行李的地方(目录挂载)
    EXPOSE 我要打开的门是啥(端口)
    RUN 奔跑吧,兄弟!(进程要一直运行下去)

    Dockerfile 案例
    vim /root/docker/Dockerfile

    # This is My first Dockerfile
    
    #Base images
    FROM centos
    
    #维护者信息
    MAINTAINER test
    
    #添加文件
    ADD pcre-8.37.tar.gz /usr/local/src
    ADD nginx-1.9.3.tar.gz /usr/local/src
    
    #RUN
    RUN yum -y install wget gcc gcc-c++ make openssl-devel
    RUN useradd -s /sbin/nologin -M www
    
    #WORKDIR
    WORKDIR /usr/local/src/nginx-1.9.3
    
    #RUN
    RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.37 && make && make install
    
    RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
    
    ENV PATH=/usr/local/nginx/sbin:$PATH
    EXPOSE 80
    
    CMD ["nginx"]
    

    运行Dockerfile
    docker build -t nginx-file:v1 /opt/docker-file/nginx/
    其他命令
    docker run -it --rm stree --cpu 1
    --rm 容器运行完即可删除
    --cpu 指定分多少颗CPU

    PS:docker pull nginx后,需要在nginx.conf中添加daemon off; 意为不允许nginx后台运行,因为docker不支持。

  • 相关阅读:
    bootstrap-datetimepicker使用记录
    Highcharts使用====一些问题记录
    值类型 引用类型
    java 发送邮件
    包括post,get请求(http,https)的HttpClientUtils
    整理的java的日期DateUtil
    oracle随机取数据
    oracle查询表的索引
    有关dwr推送的笔记
    java 超经漂亮验证码
  • 原文地址:https://www.cnblogs.com/cpw6/p/9509975.html
Copyright © 2011-2022 走看看