docker实践_02
Posted 55329
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker实践_02相关的知识,希望对你有一定的参考价值。
使用docker commit创建docker镜像并指定参数。-m指定新创建镜像的提交信息;--author列出该镜像的作者信息;接着指定想要提交的容器id。最后的zzhao/baseimage指定了镜像的用户名和仓库名(在仓库名之后还可以加 :标签)
docker commit -m="A new custom image" --author="zzhao" \a8802c1ac679 zzhao/baseimage
docker inspect 可查看新创建镜像的详细信息。
docker inspect zzhao/baseimage
并不推荐使用docker commit构建镜像。推荐使用Dockerfile文件和docker build命令构建镜像。
mkdir static_web
cd static_web
touch Dockerfile
firstDockerFile文件内容如下
# version: 0.0.1
# MyFirstDockerFile
#每条指令,如FROM必须大写,指定基础镜像为Ubuntu14.04
FROM ubuntu:14.04
#指定镜像作者,和email
MAINTAINER zzhao "[email protected]"
#RUN指定在镜像中运行的命令
RUN apt-get update
RUN apt-get install -y nginx
RUN echo ‘Hi, I am in your container‘ \ >/usr/share/nginx/html/index.html
#告诉docker该容器内的应用程序将使用的指定端口号
EXPOSE 80
构建dockerfile
docker build -t="zzhao/static_web" .
构建略过缓存的的dockerfile
docker build –no-cache -t=”zzhao/static_web”
查看新构建的镜像
docker images zzhao/static_web
查看镜像构建的详细过程步骤
docker history zzhao/static_web (或容器id)
从新镜像启动容器
docker run -d -p 80 --name static_web01 zzhao/static_web \nginx -g "daemon off;"
-d表示告诉docker以分离(detached)的方式在后台运行。
nginx -g “daemon off;是在容器中运行的命令。表示以前台运行的方式启动nginx,作为web服务器。
-p 用来控制docker在运行时应该公开哪些网络端口给外界(宿主机)。
运行一个容器时,docker可以通过两种方法来在宿主机上分配端口
1.docker可以在宿主机 上随机选择一个位于49153~65535的一个比较大的端口号来映射到容器中的80端口上。
2.可以在docker宿主机中指定一个具体的端口号来映射到容器中的80端口上。
这将在Docker宿主机上随机打开一个端口,这个端口会连接到容器中的80端口上。
指定想要查看映射情况的容器id和容器的端口号,查看宿主机中映射的端口
docker port 容器id 80
或者 docker ps -l
将容器内的80端口绑定到宿主机的一个随机端口上:
docker run -d -p 127.0.0.1::80 --name static_web01 zzhao/static_web \nginx -g "daemon off;"
使用curl连接到容器(32768是宿主机的映射端口号)
curl localhost:32768
一次删除所有镜像
docker rmi ‘docker images -a -q‘
构建和存储docker镜像除了通过公共的Registry之外,如果镜像的信息或数据不想被公开,可以通过两种方式来解决,利用docker hub上的私有仓库(付费);在防火墙后面运行自己的Registry。
从容器安装Registry
docker run -d -p 5000:5000 --restart=always --name registry registry:2
该命令将启动一个运行Registry应用的容器。并绑定到本地宿主机的5000端口。
使用新的registry给该镜像打上标签
docker tag zzhao/static_web localhost:5000/zzhao/static_web:latest
将镜像推送到新的registry中
docker push localhost:5000/zzhao/static_web
从本地registry启动容器
docker run -ti localhost:5000/zzhao/static_web /bin/bash
以上是关于docker实践_02的主要内容,如果未能解决你的问题,请参考以下文章
容器技术Docker K8s 50 容器镜像服务(ACR)详解-使用与实践
容器化开发_02_Docker判断程序是否起来?Docker定位容器错误?