|
docker image build ./ -t hello-docker:1.0.0的意思是:基于路径./(当前路径)打包一个镜像,镜像的名字是hello-docker,版本号是1.0.0。该命令会自动寻找Dockerfile来打包出一个镜像
- Tips: 你可以使用docker images来查看本机已有的镜像
不出意外,你应该能得到如下输出:
- Sending build context to Docker daemon 3.072kB
- Step 1/3 : FROM nginx
- ---> 5a3221f0137b
- Step 2/3 : COPY ./index.html /usr/share/nginx/html/index.html
- ---> 1c433edd5891
- Step 3/3 : EXPOSE 80
- ---> Running in c2ff9ec2e945
- Removing intermediate container c2ff9ec2e945
- ---> f6a472c1b0a0
- Successfully built f6a472c1b0a0
- Successfully tagged hello-docker:1.0.0
可以看到其运行了 Dockerfile 中的内容,现在我们简单拆解下:
- FROM nginx:基于哪个镜像
- COPY ./index.html /usr/share/nginx/html/index.html:将宿主机中的./index.html文件复制进容器里的/usr/share/nginx/html/index.html
- EXPOSE 80:容器对外暴露80端口
运行容器
我们刚刚使用 Dockerfile 创建了一个镜像。现在有镜像了,接下来要根据镜像创建容器:
- docker container create -p 2333:80 hello-docker:1.0.0
- docker container start xxx # xxx 为上一条命令运行得到的结果
然后在浏览器打开127.0.0.1:2333,你应该能看到刚刚自己写的index.html内容
在上边第一个命令中,我们使用docker container create来创建基于hello-docker:1.0.0镜像的一个容器,使用-p来指定端口绑定——将容器中的80端口绑定在宿主机的2333端口。执行完该命令,会返回一个容器ID
而第二个命令,则是启动这个容器
启动后,就能通过访问本机的2333端口来达到访问容器内80端口的效果了
- Tips: 你可以使用docker containers ls来查看当前运行的容器
当容器运行后,可以通过如下命令进入容器内部:
- docker container exec -it xxx /bin/bash # xxx 为容器ID
原理实际上是启动了容器内的/bin/bash,此时你就可以通过bash shell与容器内交互了。就像远程连接了SSH一样
发生了什么 (编辑:成都站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|