1. 从镜像启动容器[docker run]
docker run -d -p 80:80 --name container image
docker run -it image:latest bash
-d 后台运行容器,返回容器ID
-p: 端口映射,格式为:主机(宿主)端口:容器端口
--name 容器名称
-i: 以交互模式运行容器,通常与 -t 同时使用
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致
-e key=value: 设置环境变量
--expose=[]: 开放一个端口或一组端口
2. 启动/停止/重启一个容器[docker start/stop/restart]
docker start/stop/restart container
3. 删除容器 & 镜像[docker rm/rmi]
删除容器 :
docker rm -f container
-f :强制删除一个运行中的容器
删除镜像:
docker rmi -f image
-f :强制删除
4. 在运行的容器中执行命令[docker exec]
运行bash,并分配一个终端:
docker exec -it container bash
运行容器中的脚本:
docker exec -it container /bin/sh /root/setup.sh
-d :后台运行
-i :保持 STDIN 打开
-t :分配一个伪终端
5. 查看容器日志[docker logs]
docker logs container
6. 查看容器[docker ps]
docker ps
-a :显示所有的容器,包括未运行的
7. 从 Dockerfile 创建镜像[docker build]
docker build -t image .
8. 查看本地镜像[docker images]
docker images
9. Dockerfile
Snipaste_2018-07-19_09-46-04.png
FROM java:8
MAINTAINER sukaiyi
ADD sky-lieve-0.0.1-SNAPSHOT.jar app.jar
ADD application.properties application.properties
EXPOSE 80
CMD ["java","-jar","app.jar"]
Dockerfile命令详解
- FROM 指定基础镜像
FROM java:8
- MAINTAINER 维护者
MAINTAINER sukaiyi
- ADD 复制命令,把文件复制到镜像中
语法如下:
ADD <src> <dest>
src :本地文件或是一个url
COPY 复制命令,与ADD类似,src不能是url
RUN 构建镜像时运行的命令,并提交运行结果
语法如下:
RUN ["executable", "param1", "param2"]
例如:
RUN ["/bin/bash", "-c", "echo hello"]
- CMD 容器启动时要运行的命令
CMD ["java","-jar","app.jar"]
- EXPOSE 暴露端口
EXPOSE 80
如果想使得容器与主机的端口有映射关系,必须在容器启动的时候加上 -P参数
- ENV 设置环境变量
ENV <key> <value>