镜像
拉取镜像
docker pull
常用参数
- -f:强制删除运行中的容器
列出镜像
docker images
删除镜像
docker rmi
创建镜像
docker commit
常用参数
- -m:本次提交信息
- –author="" :作者
- docker build 使用此从Dockerfile文件来构建镜像
常用参数:
- -t x/y:z:指定镜像的命名空间为x仓库为y,tag为z
容器
创建/启动容器
docker create // docker create 命令创建的容器并不会立即进入运行状态,需要使用docker start命令来启动
docker retart //重启容器
docker run
常用参数
- –name:为容器指定名称
- -it:启动一个交互型容器,此参数为我们和容器提供了一个交互shell
- -d:创建后台型容器
- -restart=always:容器退出后自动重启
- -restart=on-failure❌容器退出时如果返回值是非0,就会尝试重启x次
- -p x:y :主机端口:容器端口
- -P:随机分配一个49000到49900的端口
8.-v:创建数据卷 - -n :指定dns
- -h : 指定容器的hostname
- -e :设置环境变量
- -m :设置容器使用内存最大值
- –net: 指定容器的网络连接类型,支持 bridge/host/none/container
- –link=x: 添加链接到另一个容器x
- –expose=x: 开放端口x
这里docker create和docker run -it创建的容器都是交互型容器
查看容器
docker ps //查看正在运行的容器
常用参数
- -a:查看所有容器
- -l:只列出最近创建的
- -n=x:只列出最后创建的x个
- -q:只列出容器id
停止容器
docker stop
docker kill
删除容器
docker rm
常用参数
- -f:强制删除运行中的容器
- docker rm
docker ps -aq
:删除所有容器
查看容器日志
docker logs
常用参数
- -f:实时查看日志
- –tail=x:查看最后x行
- -t:查看日志产生的时间
查看容器进程
docker top
查看容器配置信息
docker inspect
常用参数
- -f=’{{x}}’:查看x配置
进入容器
docker attach //进入交互型容器
常用参数
- -f:强制删除运行中的容器
- docker rm
docker ps -aq
:删除所有容器
docker exec //进入后台型容器
常用参数
- -it 容器id /bin/bash:进入到后台容器
开机自动启动容器
在使用docker run启动容器时,使用 --restart 参数来设置
docker run -m 512m --memory-swap 1G -it -p 58080:8080 --restart=always
–restart具体参数值详细信息:
- no - 容器退出时,不重启容器;
- on-failure - 只有在非0状态退出时才从新启动容器;
- always - 无论退出状态是如何,都重启容器;
如果创建时未指定 --restart=always ,可通过update 命令设置
docker update --restart=always xxx
Dockerfile
如下是一个Dockerfile文件,我们就来通过这个文件来学习一下Dockerf的相关指令
FROM openjdk:8-jre-alpine
MAINTAINER "syj <syj@zhixiang.org.cn>"
RUN apt-get update
EXPOSE 80
ADD test.0.0.1.jar app.jar
VOLUME /tmp
WORKDIR /tmp
ENV username syj
CMD java -jar /app.jar
ENTRYPOINT java -jar /app.jar
USER root
ONBUILD:echo "hello child"
- FROM:文件开头的指令,指定父级镜像
- MAINTAINER: 作者信息,syj是用户名,后面是邮箱
- RUN: 用来执行命令,可以有一下三种形式
- RUN apt-get update
- RUN [ “apt-get”," update" ]
- RUN apt-get update && apt-get nginx
- EXPOSE: 指定容器对外开放的端口
- ADD :将主机上的文件(Dockerfile的相对路径)或者网络文件添加到镜像中
- VOLUME :指定挂载点
- WORKDIR:下方指令执行的目录
- ENV:设置环境变量
- CMD:启动容器时默认运行的命令,同RUN的执行方式
- CMD java -jar /app.jar
- CMD [“java”,"-jar","/app.jar"]
- ENTRYPOINT :同CMD
- USER :执行指令的用户
- ONBUILD:触发器指令,此镜像当做父镜像时执行的命令,可以跟ADD、RUN、ENTRYPOINT