docker nginx:latest image – content on docker host not changing

when maintaining the content and configuration on the Docker host, running:

docker run --name mynginx2 -v $(pwd)/var/www:/usr/share/nginx/html:ro \
-v $(pwd)/var/nginx/conf:/etc/nginx:ro -P -d nginx

I request the index.html page

  • Running VirtualBox in Ubuntu in Mac OSX, won't start up
  • Virtualize my VPS
  • Does docker notary key rotation invalidate all signed images?
  • Saving docker credentials in docker config
  • Loss IIS execution when enable docker support
  • Cross-region load balancing + routing on Google Container Engine
  • curl  # docker-machien ip : mynginx port

    which display correctly the default index.html

    Then on my local host I modify the $(pwd)/var/www/index.html ,

    <h1>Welcome to my nginx MODIFIED!</h1>

    and I request again the index.html page


    BUT , I still get the original index.html page … ( even after restarting the container)

    what could be missing ? thanks for any feedback..

    ==== UPDATE

        user nginx;
        worker_processes  1;
        error_log  /var/log/nginx/error.log warn;
        pid        /var/run/;
        events {
            worker_connections  1024;
        http {
            include       /etc/nginx/mime.types;
            default_type  application/octet-stream;
            log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                              '$status $body_bytes_sent "$http_referer" '
                              '"$http_user_agent" "$http_x_forwarded_for"';
            access_log  /var/log/nginx/access.log  main;
            error_log  /var/log/nginx/access.log;
            #sendfile        on;
            sendfile        off;
            #tcp_nopush     on;
            keepalive_timeout  65;
            #gzip  on;
            include /etc/nginx/conf.d/*.conf;


        server {
            listen       80;
            server_name  localhost;
            #charset koi8-r;
            #access_log  /var/log/nginx/log/host.access.log  main;
            location / {
                root   /usr/share/nginx/html;
                index  index.html index.htm;
            #error_page  404              /404.html;
            # redirect server error pages to the static page /50x.html
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   /usr/share/nginx/html;
            # proxy the PHP scripts to Apache listening on
            #location ~ \.php$ {
            #    proxy_pass;
            # pass the PHP scripts to FastCGI server listening on
            #location ~ \.php$ {
            #    root           html;
            #    fastcgi_pass;
            #    fastcgi_index  index.php;
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            #    include        fastcgi_params;
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #location ~ /\.ht {
            #    deny  all;

  • How to pass parameter into docker container and update file in container with passed parameter
  • Understanding Docker Macvlan network
  • ADD > LOAD .SQL using Docker Automated build and Compose
  • AWS beanstalk environment isn't rotating docker container logs
  • Dockerfile for PHP service
  • maven-docker-plugin: how to get container ip address
  • One Solution collect form web for “docker nginx:latest image – content on docker host not changing”

    How does your Nginx configuration file look like? Do you have caching enabled for static html files?
    Try to add expires -1; as configuration option to the location of your index.html file.
    Please have also have a look at this stackoverflow question.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.