美文网首页
DOCKER笔记

DOCKER笔记

作者: SithCait | 来源:发表于2018-10-23 18:47 被阅读0次

    推荐阅读

    https://blog.51cto.com/gouyc

    Dockerfile

    在容器内的主进程启动之前,先启动另一个程序,根据镜像中的文件和把镜像启动为容器时向容器传递的环境变量(有需要的话替换配置文件),由这个程序启动主进程。(exec)

    image.png
    FROM指令是最重要的一个且必须为Dockerfile文件开篇的第一个非注释行,用于指定映像文件构建过程指定基准镜像,后续的指令运行于此基准镜像所提供的运行环境,本机不存在此基准镜像则从Registey拉取。
    MAINTANIER制作者的详细信息。已替换为LABLE
    COPY用于从Docker主机复制文件至创建的新映像文件(build上下文中的路径,不能是父目录中的文件)。
    ADD类似COPY,支持tar文件或者url路径
    WORKDIR指定工作目录。
    VOLUME创建挂载目录。
    EXPOSE用于为容器打开指定要监听的端口以实现与外部通信。
    ENV用于为镜像定义所需的环境变量,并可被文件中与其后的其它指令所调用。EVN key=value ${value}。 使用\换行 。可被run -e命令替换。
    RUN运行在build时,逐一运行,由于pid不为1,需注意命令格式。
    CMD运行在run时,仅最后一个生效,会被run的参数覆盖。
    ENTRYPOINT类似CMD,不会被run命令覆盖,仅最后一个生效。(相关链接:https://www.cnblogs.com/reachos/p/8609025.html
    USER指定用户名或PID。
    HEALTHCHECK健康监测。
    ARG指定build时的参数。

    安装

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    sudo yum makecache fast
    sudo yum -y install docker-ce
    sudo systemctl start docker
    systemctl start docker & systemctl enable docker

    运行镜像

    docker pull registry.docker-cn.com/library/rabbitmq:3-mmanegement
    docker images
    docker run -d -p 5672:5672 -p 15672:15672 --name myrabbitmq image的id
    docker ps
    docker exec -it mysql5.7 /bash
    退出:exit

    容器镜像删除

    1.停止所有的container,这样才能够删除其中的images:
    docker stop (docker ps -a -q) 如果想要删除所有container的话再加一个指令: docker rm(docker ps -a -q)
    2.查看当前有些什么images
    docker images
    3.删除images,通过image的id来指定删除谁
    docker rmi <image id>
    想要删除untagged images,也就是那些id为<None>的image的话可以用
    docker rmi (docker images | grep "^<none>" | awk "{print3}")
    要删除全部image的话
    docker rmi $(docker images -q)

    使用本地文件

    docker run -d -p 3306:3306 --privileged=true -v /docker/mysql.conf.d/mysqld.cnf:/home/mysqld.cnf -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql

    替换配置文件

    简略步骤如下:
    docker cp 3c8d188f7fb48:/etc/mysql/mysql.conf.d/mysqld.cnf /home/
    docker cp /home/mysqld.cnf 3c8d188f7fb48:/etc/mysql/mysql.conf.d/mysqld.cnf
    docker reload 3c8d188f7fb48

    限制对内存使用

    docker run -e ES-JAVA-OPTS="-Xms 256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 image的id

    发布jar包

    #1、修改ip等环境配置后,导出jar包
    mvn -DskipTests=true clean package
    
    #2、新建Dockerfile文件,shop-manager-1.0-SNAPSHOT.jar为你自己项目的jar包名
    FROM java:8 
    VOLUME /tmp 
    ADD shop-manager-1.0-SNAPSHOT.jar app.jar 
    RUN bash -c 'touch /app.jar' 
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    
    #3、将Dockerfile与jar包上传至服务器同一目录下,运行docker build命令
    docker build -t shop-manager .
    
    #4、编译成功后即可通过imange id运行
    #     查看日志需增加文件路径映射  –v {宿主机目录}:{docker日志目录}
    docker run -d -p 8080:8080 shop-manager  
    

    相关文章

      网友评论

          本文标题:DOCKER笔记

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