美文网首页
Docker快速入门

Docker快速入门

作者: 杰杰k | 来源:发表于2019-03-11 10:45 被阅读0次

    安装nginx

    • 从docker hub上拉取镜像
     docker pull nginx:latest
    
    • 托管一些简单的静态内容
    docker run --name some-nginx -v  $PWD/html:/usr/share/nginx/html:ro -d nginx
     -v $PWD/html:/usr/share/nginx/html:将主机中当前目录下的html挂载到容器的/usr/share/nginx/html
    
    • 或者准备自己的配置文件和文件目录
    docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs  -d nginx
    #dockerhub上有详细自定义配置部署说明
    -p 80:80:将容器的80端口映射到主机的80端口
    --name mynginx:将容器命名为mynginx
    -v $PWD/www:/www:将主机中当前目录下的www挂载到容器的/www
    -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机中当前目录下的nginx.conf挂载到容器的/etc/nginx/nginx.conf
    -v $PWD/logs:/wwwlogs:将主机中当前目录下的logs挂载到容器的/wwwlogs
    

    注意:如果出现以下类似报错

    docker: Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "process_linux.go:424: container init caused \"rootfs_linux.go:58: mounting \\\"/opt/nginx/conf/nginx.conf\\\" to rootfs \\\"/var/lib/docker/overlay2/f72f02d7a8f04291ee3dd0515fd75cbaa8e12904816f5bb84c714da3d43f7cf0/merged\\\" at \\\"/var/lib/docker/overlay2/f72f02d7a8f04291ee3dd0515fd75cbaa8e12904816f5bb84c714da3d43f7cf0/merged/etc/nginx/nginx.conf\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
    

    是因为没提前创建好挂载目录和配置文件导致conf/nginx.conf 自动创建成目录,删除并创建nginx.conf配置文件即可

    ll conf/
    rm -r conf/nginx.conf
    touch conf/nginx.conf
    
    • 查看运行容器
    docker ps
    
    当前正在运行的容器

    安装Lamp环境

    拉取一个lamp镜像

    docker pull fauria/lamp
    

    创建lamp目录&挂载路径

    mkdir ~/lamp && cd ~/lamp
    mkdir www logs
    

    创建容器

    docker run -d  -p 80:80 -v /opt/lamp/www:/var/www/html -v /opt/lamp/logs/:/var/log/httpd --name my-lamp-container fauria/lamp
    
    

    查看是否启动成功

    docker ps
    
    STATUS为UP说明启动成功

    查看所有容器

    docker ps -a
    

    进入一个已经在运行的容器

    #其中字符串为容器ID
    docker exec -it d27bd3998ad9 /bin/bash
    

    删除容器删除前先停止

    docker stop  d27b  & docker rm d27b
    
    docker批量删除容器、镜像

    一条命令实现停用并删除容器

    docker stop $(docker ps -q) & docker rm $(docker ps -aq)
    

    删除所有镜像

    docker rmi $(docker images -q)
    

    按条件删除容器

    docker rm $(docker ps -a | awk '/test\/webapp/ {print $1}')
    

    按条件删除镜像

    #没有打标签
    docker rmi `docker images -q | awk '/^<none>/ { print $3 }'`
    #镜像名包含关键字
    docker rmi --force `docker images | grep keywords | awk '{print $3}'`   
    //其中keywords为关键字
    

    作者新手,本文仅供参考,不对之处,还望斧正

    相关文章

      网友评论

          本文标题:Docker快速入门

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