sudo apt-get install -y docker.io(安装docker)
systemctl start docker(开启)
systemctl stop docker (关闭)
systemctl restart docker(重启)
systemctl status docker(查看状态)
systemctl enable docker(设置开机自启)
docker version(版本信息)
docker info(查看doker详细信息
- #1.打包命令
- docker build -t imageName -f Dockerfile .
- #2.Dockefile文件例子
- FROM openjdk:8
- VOLUME /tmp
- ARG applicationName
- ENV TimeZone=Asia/Shanghai
- RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone
- EXPOSE 8080
- COPY applicationName-0.0.1-SNAPSHOT.jar app.jar
- ENTRYPOINT ["java","-jar","/app.jar"]
Dockerfile 常用命令
FROM 设置基础镜像
MAINTAINER 维护者信息 (MAINTAINER xxxx@qq.com)
ENV 运行容器时的环境变量
ARG 用户构建镜像时使用的变量,镜像建立完成后就失效
COPY 复制本地文件到容器目录中,只能从docker所在的主机读取资源 (COPY . . 指令是将项目中的当前目录复制到镜像中的工作目录)
ADD 拷贝文件,不同COPY的是,在拷贝压缩文件到目标目录下的时候会自动解压,可以通过URL远程服务器读取主机上的资源
VOLUME 创建一个具有指定名称的挂载数据卷,用于指定持久化目录,通常用来实现容器与宿主机之间的文件共享功能
#指定容器中的/var/log挂载到宿主机的/var/data目录,等同于docker run时的参数-v /var/data:/var/log VOLUME var/data /var/logWORKDIR 工作目录,如多次使用相对路径,则从上到下连接,还可以解析ENV定义的变量,相当于cd
EXPOSE 暴露容器运行时的端口(在run时候不指定的情况下),以及通信协议,如TCP|UDP(EXPOSE 80/TCP | EXPOSE 80/UDP)
RUN 在当前镜像之上的新层中执行命令,并且提交结果,在docker build时运行
CMD
ENTRYPOINT 与CMD一样,都是在指定容器启动程序以及参数, 如运行我们打包的jar的命令为 java -jar application.jar,该指令配置为:ENTRYPOINT ["java","-jar","/application.jar"]
ps: 在指令中变量的使用:$Variable
docker images
- docker rmi -f imageName (删除单个)
- docker rmi -f imageName1|imageID1 imageName2|imageID2 imageName2|imageID2 .....
docker search imageName
- docker pull imageName
- docker pull imageName:tag
docker run -p ip:hostPort:containerPort imageID
docker history imageName|imageID
- 1.查看所有容器
- docker ps -a
- 2.查看正在运行的容器
- sudo docker ps
- docker exec -it containerName|containerID /bin/bash
- docker attach containerName|containerID
exit
- docker start containerName|containerID
- docker stop containerName|containerID
- docker restart containerName|containerID
- docker kill containerName|containerID (杀死容器)
- 1.由容器内往容器外拷贝
- docker cp containerName|containerID 容器内路径 容器外路径
- 2.由容器外往容器内拷贝
- docker cp containerName|containerID 容器外路径 容器内路径
docker rename containerName|containerID newContainerName
- docker rm containerName|containerID (删除单个容器)
- docker rm imageName1|imageID1 imageName2|imageID2 imageName2|imageID2 .....
docker system df
docker inspect containerName|containerID
docker top containerName|containerID