一、docker信息类


# docker -v 查看docker版本信息


 


二、docker镜像常见操作


# docker images 查看可以使用的所有镜像


# docker load < wdwtest.tar 导入镜像


# docker pull 10.243.16.17:5000/test:4.0 从镜像仓库中拉取镜像


# docker tag 10.243.16.17:5000/test:4.0 wdw:1.0 镜像打标签


# docker push 10.243.16.17:5000/test:4.0 将本地docker中的镜像推送到镜像仓库中


# docker save -o wdwtest.tar 10.243.16.17:5000/centos7.2tomcat:7.5 导出镜像到本地


# docker rmi 10.243.16.17:5000/centos7.2tomcat:7.5 通过镜像名 删除镜像


docker rmi a3f85b18c434 通过镜像id删除镜像


 


 


三、docker容器常见操作


# docker ps 查看目前正在运行的容器


# docker ps -a 查看已创建的所有容器


# docker run -it 80f16c3da1a6(镜像id) '/bin/sh' 在前台运行一个容器


# docker run -itd 80f16c3da1a6(镜像id) '/bin/sh' 在后台运行一个容器


# docker exec -it 1a54a825ffe1(容器id) '/bin/sh' 登录进一个正在运行的容器中


# docker logs 1a54a825ffe1(容器id) 查看容器的实时运行日志


# docker rm 49b4596345b4(容器id) 删除容器


# docker kill 49b4596345b4(容器id) kill正在运行的容器


# docker start 49b4596345b4(容器id) 重新运行一个已经停止的容器


 


四、docker镜像制作


# docker commit 1a54a825ffe1(容器id) wdw12345:1.0 将一个容器提交为镜像


 


#通过Dockerfile制作镜像


 


Dockerfile分为四部分组成:基础镜像信、维护者信息、镜像操作指令和容器启动时执行指令。举个栗子:


FROM 10.243.16.17:5000/centos7.2jdk:1.8.0.121


MAINTAINER wangdw


RUN mkdir /usr/local/tomcat


ADD ./tomcat2.tar /usr/local/tomcat


CMD /usr/local/tomcat/bin/catalina.sh run


 


1、FROM指令


DockerFile第一条必须为From指令,指定基础镜像


2、MAINTAINER


指定维护者信息


3.RUN


每条run指令在当前基础镜像执行,并且提交新镜像


4.CMD


每个容器只能执行一条CMD命令,多个CMD命令时,只最后一条被执行


5.EXPOSE


暴露镜像的端口到宿主机上


例:EXPOSE 22 80


6.ENV


指定一个环境变量,会被后续 RUN 指令使用,并在容器运行时保持


7.ADD


复制宿主机上指定的文件到容器中指定的目录中 。 其中 可以是Dockerfile所在目录的一个相对路径,还可以是一个tar文件(自动解压为目录)


8.COPY


复制宿主机上的文件到容器中的指定目录下


9.ENTRYPOINT


配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖


每个Dockerfile中只能有一个 ENTRYPOINT ,当指定多个时,只有最后一个起效


10.VOLUME


格式为 VOLUME [“/data”]


创建一个可以从宿主机挂载的挂载点


11.USER


格式为 USER username


指定运行容器时的用户名或UID,后续的 RUN 也会使用指定用户


当服务不需要管理员权限时,可以通过该命令指定运行用户


12.WORKDIR


格式为 WORKDIR /path/to/workdir


为后续的 RUN 、 CMD 、 ENTRYPOINT 指令配置工作目录。


可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径


 


 


通过Docker Build 创建镜像


-t 可以指定生成镜像的标签,/root/dockerfile为Dockerfile所在的目录


docker build -t 10.243.16.17:5000/centos7.2tomcat:7.8 /root/dockerfile