1. 运行一个最简单的容器

    1.1 首先我们为docker设置国内阿里云的镜像加速器

    vagrant@ubuntu-xenial:/data/www$ sudo vi /etc/docker/daemon.json 

    写入以下json

    {
     "registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"]
    }

    重启一下服务

    vagrant@ubuntu-xenial:/data/www$ sudo systemctl restart docker
  2. 运行一个最简单的容器,输出hello docker

    vagrant@ubuntu-xenial:/data/www$ docker run ubuntu echo hello docker  #运行一个简单的容器
    Unable to find image 'ubuntu:latest' locally
    latest: Pulling from library/ubuntu
    54ee1f796a1e: Pull complete
    f7bfea53ad12: Pull complete
    46d371e02073: Pull complete
    b66c17bbf772: Pull complete
    Digest: sha256:31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
    Status: Downloaded newer image for ubuntu:latest
    hello docker   #输出hello docker
    vagrant@ubuntu-xenial:/data/www$ docker images   #查看刚从远端镜像仓库pull到本地的镜像
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    ubuntu              latest              4e2eef94cd6b        2 weeks ago         73.9MB
  3. 下面我们运行一个有些意义的nginx容器

    vagrant@ubuntu-xenial:/data/www$ docker run -p 8080:80 -d nginx
    Unable to find image 'nginx:latest' locally
    latest: Pulling from library/nginx
    bf5952930446: Pull complete
    cb9a6de05e5a: Pull complete
    9513ea0afb93: Pull complete
    b49ea07d2e93: Pull complete
    a5e4a503d449: Pull complete
    Digest: sha256:b0ad43f7ee5edbc0effbc14645ae7055e21bc1973aee5150745632a24a752661
    Status: Downloaded newer image for nginx:latest
    d127d03dba7937834f4f3821bed1bd9f6f5f775565ceab7cd759c91adafad3b9

    说明
    -p 8080:80 是做端口映射的,把docker中nginx的80端口映射到本地host的8080端口
    -d 把这个nginx做守护进程的方式启动

    vagrant@ubuntu-xenial:/data/www$ docker images    #查看镜像已经是有了
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    ubuntu              latest              4e2eef94cd6b        2 weeks ago         73.9MB
    nginx               latest              4bb46517cac3        3 weeks ago         133MB
    
    vagrant@ubuntu-xenial:/data/www$ docker ps    #可以看到我们当前运行的容器
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
    d127d03dba79        nginx               "/docker-entrypoint.…"   6 minutes ago       Up 6 minutes        0.0.0.0:8080->80/tcp   intelligent_knuth
    vagrant@ubuntu-xenial:/data/www$

    下面我们访问一下这个nginx容器
    查看一下虚拟机的IP

    vagrant@ubuntu-xenial:/data/www$ ifconfig
    enp0s8    Link encap:Ethernet  HWaddr 08:00:27:a1:9c:bb
              inet addr:192.168.33.12  Bcast:192.168.33.255  Mask:255.255.255.0  #192.168.33.12 这个即为我们之前设置的虚拟机静态IP
              inet6 addr: fe80::a00:27ff:fea1:9cbb/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:10 errors:0 dropped:0 overruns:0 frame:0
              TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:992 (992.0 B)  TX bytes:648 (648.0 B)              

    访问 http://192.168.33.12:8080/
    3.png

下面我们修改一下nginx欢迎页面,首先我们创建一个文件,写入 welcome Docker !

vagrant@ubuntu-xenial:/data/www$ sudo vi index.html
vagrant@ubuntu-xenial:/data/www$ cat index.html
welcome Docker !
vagrant@ubuntu-xenial:/data/www$

vagrant@ubuntu-xenial:/data/www$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
d127d03dba79        nginx               "/docker-entrypoint.…"   26 minutes ago      Up 26 minutes       0.0.0.0:8080->80/tcp   intelligent_knuth
vagrant@ubuntu-xenial:/data/www$ docker cp index.html  d127d03dba79:/usr/share/nginx/html     #把新创建的index.html 复制到容器中 

说明:
docker cp 要复制的文件 容器的ID:容器中nginx的根目录

再次访问 http://192.168.33.12:8080/

4.png

这种方式把主机的index.html 文件复制到docker的nginx容器中的根目录修改是暂时性的
如果想永久生效,需要 docker commit -m 'replace index.html' 容器ID 新的镜像名称 提交永久保存,其实是生成了一个新的images。
这里就不在掩饰,感兴趣的小伙伴可以自己尝试一下。

Last modification:October 12, 2020
如果觉得我的文章对你有用,请随意赞赏