• docker 常用命令


    镜像基本命令

    帮助命令

    docker --help

    docker info 显示docker 的容器和镜像信息

    docker version 显示docker的版本信息

    镜像命令

    docker images

    显示docker 的镜像。

    docker 搜索命令

    image

    docker pull

    现在镜像
    docker pull mysql:[tag]

    docker pull docker.io/library/mysql:latest

    docker rmi

    删除镜像

    docker rmi -f 镜像ID

    删除所有的镜像

    docker rmi -f $(docker images -aq)

    容器命令

    下载一个centos 的镜像 ,docker pull centos

    新建容器并启动

    docker run [可选参数] 镜像

    参数说明

    参数 说明
    --name 容器名称
    -d 后台方式运行
    -it 交互方式运行
    -p 端口映射 -p 主机端口:容器端口 -p 8080:8080
    -P 随机指定端口

    启动并进入容器

    docker run -it centos /bin/bash

    image

    进入容器后,使用exit 命令退出容器。

    查看运行的容器

    docker ps 查看活动的容器

    参数 说明
    -a 查看所有的容器,包括停止的
    -n=? 查看最近运行的容器
    -q 只显示容器ID docker ps -aq

    退出容器

    exit 容器停止并退回
    ctrl + p +q 容器不停止退出

    删除容器

    docker rm 容器ID
    docker rm -f $(docker ps -aq)
    docker ps -a -q | xargs docker rm
    docker ps -a -q | xargs docker rm -f

    启动或停止容器

    docker start 容器ID
    dokcer restart 容器ID
    docker stop 容器ID
    docker kill 容器ID

    常用的其他命令

    后台启动容器

    docker run -d centos

    查看日志

    docker logs -f -t -tail 条数 容器ID

    让容器一直运行
    docker run -d centos /bin/sh -c "while true;do echo ray;sleep 1;done"

    docker logs -t -f --tail 10 1239043eefa8

    查看容器内部的进程信息

    docker top 容器ID

    image

    查看镜像元数据

    docker inspect 容器ID

    image

    进入正在运行的容器

    docker exec -it 容器ID /bin/bash #进入容器后开启一个新的终端,可以在里面操作
    docker attach 容器id # 进入容器正在执行的终端

    从容器拷贝文件到主机

    docker cp 容器ID:容器内路径 目的主机的路径

    测试

    安装nginx

    下载镜像
    docker pull nginx
    运行容器

    docker run -d --name 名字 -p 主机端口:容器端口 镜像名称

    docker run -d --name nginx001 -p 8080:80 nginx

    进入容器
    docker exec -it nginx001 /bin/bash

    用完即删除

    docker run -it --rm tomcat:9.0 ,一般用来测试,用完即删除

    docker run -d -p 3355:8080 --name tomcat01 tomcat

    安装 elasticsearch

    docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.17.3

    image

    docker stats

    image

    增加内存配置:

    docker run -d --name elasticsearch001 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" elasticsearch:7.17.3

    docker 图形化管理工具

    docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

    image

    image

    commit 镜像

    docker commit 提交容器为一个新的副本

    docker commit -m="提交的信息" -a="作者信息" 容器ID 目标镜像名称:[tag]

    测试步骤:

    1.启动一个tomcat
    2.在tomcat中增加一个webapps 应用
    3.拷贝文件到webapps目录。
    4.将操作过的容器通过commit 提交为一个镜像,以后就可以使用这个镜像。

    容器数据卷

    什么是容器数据卷

    数据不能保存在容器中,容器一删除,数据就删除了。数据不放在容器中。容器之间有一个数据共享技术。数据卷就是将容器内的目录 挂载到 宿主机目录上。

    image

    使用数据卷

    使用命令挂载:
    docker run -it -v /home/test:/home centos /bin/bash

    docker inspect 容器ID

    image

    docker run -d -p 3310:3306 -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:8.0.29

    Dockfile

    用来构建docker镜像。
    1.编写一个docker文件
    2.构建镜像
    3.运行镜像
    4.dockerpush 发布镜像

    docker 指令

    1.指令必须都是大写字母。
    2.从上到下执行
    3.# 为注释
    4.每一个指令会创建一个新的镜像层。

    dockerfile 指令说明

    image

    指令 说明
    FROM 基础镜像
    MAINTAINER 镜像是谁写的
    RUN 镜像构建是需要运行的命令
    ADD 步骤 tomcat镜像,需要添加的内容
    WORKDIR 镜像的工作目录
    VOLUME 挂载的目录
    EXPOSE 保留端口配置
    CMD 指定这个容器需要运行的命令,只有最后一个会生效
    ENTRYPOINT 指定这个容器需要运行的命令,可追加命令
    ONBUILD 当构建一个被继承DockerFile这个时候会运行ONBUILD的指令,触发指令
    COPY 类似ADD 将文件copy到镜像
    ENV 构建的时候 设置环境变量

    编写 dokerfile

    
    FROM centos:7
    
    MAINTAINER  RAY<58133370@qq.com>
    
    ENV MYPATH /usr/local
    WORKDIR $MYPATH
    
    RUN yum -y install vim
    RUN yum -y install net-tools
    
    EXPOSE 80
    
    CMD echo $MYPATH
    CMD /bin/bash
    
    

    编译构建

    docker build -f dockfile -t mycentos:1.0 .

    测试运行

    docker run -it mycentos:1.0

    1.进入后,直接进到工作目录
    2. 支持 ifconfig 明
    3.支持vi 命令

    可以通过 docker history '镜像ID'查看进行编译的过程

    CMD和 ENTRYPOINT区别

    CMD ["ls" ,"-a"]

    docker run 镜像ID -l 会报错

    ENTRYPOINT ["ls" ,"-a"]

    docker run 镜像ID -l 会变成 ls -al ,不会报错

    tomcat 镜像

    • 编写Dockerfile
    FROM centos:7
    
    MAINTAINER ray<58133370@qq.com>
    
    ADD jdk-8u191-linux-x64.tar.gz /usr/local/
    ADD apache-tomcat-9.0.62.tar.gz /usr/local/
    
    RUN yum -y install vim
    
    ENV MYPATH /usr/local
    WORKDIR $MYPATH
    
    ENV JAVA_HOME=/usr/local/jdk1.8.0_191
    ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.62
    ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.62
    ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib;$CATALINA_HOME/bin
    
    EXPOSE 8080
    
    CMD $CATALINA_HOME/bin/startup.sh && tail -F $CATALINA_HOME/logs/catalina.out
    
    • 编译镜像

    docker build -t tomcat:1.0 .

    • 运行镜像

    docker run -d -p 8080:8080 -v /home/tomcat/webapps:/usr/local/apache-tomcat-9.0.62/webapps tomcat:1.0

    • 打tag

    docker tag 容器ID ray/tomcat:1.0

    导出导入镜像

    • 将镜像保存到tar文件中,这个镜像可以拷贝给其他人
      docker save -o tomcat.tar tomcat:1.0
    • 可以将导出的镜像导入
      docker load -i tomcat.tar

    Docker网络

  • 相关阅读:
    阻止事件的默认行为,例如click <a>后的跳转~
    阻止事件冒泡
    IE67不兼容display:inline-block,CSS hack解决
    IE678不兼容CSS3 user-select:none(不可复制功能),需要JS解决
    JS数组常用方法总结
    json 只能用 for-in 遍历
    用实例的方式去理解storm的并发度
    OpenLDAP 搭建入门
    kafka api的基本使用
    kafka基本介绍
  • 原文地址:https://www.cnblogs.com/yg_zhang/p/16215658.html
Copyright © 2020-2023  润新知