docker 常用指令
从开始使用docker到深入使用docker
1. 查看docker版本
docker version --返回docker版本信息
2. 查看docker的运行的详细信息
docker info -- docker一些状态、模式、端口信息
--container
--images
--storage driver
--root directory
--execution driver
--debug status
--proxy port
-- 。。。
3. 如何跑docker run command
docker run [-it/p] image //run image as a container
sudo docker run -p 8080:8080 -p 50000:50000 jenkins
-p ip:hostport:containerport 127.0.0.1:80:8080 --
-d 在后台运行 --
-i 交互模式运行 --
--name 指定容器名称 -
--env-file=[] 从指定文件读入环境变量-
-v
执行命令后,会下载hello-world image
--p参数,指定端口号,容器之间的通信
--如果已经存在这个container
--如果本地没有,就去仓库hub里下
4. 从仓库里拉取image镜像
docker pull [image]
5. 查看docker 镜像信息
docker images
tag -
image ID
Created
Virtual Size
6. 移除docker images
docker rmi ImageID
7. 返回imagesID only
docker images -q
8. 查看image或者container的detail
docker inspect Repository(image name)
9. container是image的实例
10. 查看有哪些containers
docker ps [-a] //返回当前运行的containers
-a 返回系统上的containers
11. 查看指定镜像的创建历史
docker history ImageID
12. 查看Container的top信息
docker top ContainerID
13. 停止运行container
docker stop ContainerID
14. 删除一个container
docker rm ContainerID
15. docker stats ContainerID
16. docker attach ContainerID
17. 暂停一个container
docker pause ContainerID
18. docker unpause ContainerID
19. 干掉一个container
docker kill containerID
20. container的生命周期
created run kill pause stop
21. container的架构
22. docker的配置
service docker stop
service docker start
23. containers and shells
docker run -it centos /bin/bash
24. docker File
DockerFile创建
DockerFile中的内容和语法 -
文件构成
- 基础镜像信息
- 维护者信息
- 镜像操作指令
- 容器启动时执行指令
-
为注释内容
1. # - 注释的用法
2. FROM <image>- 开头关键字,从这开始,从哪个iamge中拿东西
3. MAINTAINER - 告诉docker谁将维护这个
4. RUN - image运行哪些指令,针对image
4.1 RUN指令创建的中间镜像会被缓存,并会在下次构建中使用。
4.2 如果不想使用这些缓存镜像,可以在构建时指定--no-cache参数,如:docker build --no-cache
6. ADD - 将本地文件添加到容器中,可以访问网络(wget),也会自动解压文件
7. COPY - 类似ADD,不会解压也不能访问网络
8. CMD - 容器启动时,系统运行指令
9. EXPOSE - expose port in the container to the Docker host
10. ENTRYPOINT - 配置容器接收参数,使其可执行
11. LABEL - 为镜像添加元数据
12. VOLUME - 指定持久化目录
13. WORKDIR -工作目录,类似cd命令
14. ONBULILD - 设置镜像触发器
15. ENV - 设置环境变量
博客:https://www.cnblogs.com/panwenbin-logs/p/8007348.html
docker的构建
1. docker bulid -t ImageName:TagName dir
dir Docker File的目录
25. 管理docker端口
hostport containerport
26. 部署web server dockerfile
- 创建DockerFile
- build
docker build -t="mywebserver"
- run
docker run -d -p 80:80 mywebserver
27. 一些常用主机命令
CMD command param1 # CMD["echo","hello world"]
ENTRYPOINT command param1 #ENTRYPOINT ["echo"] 可以从CLI接受参数
ENV key value # ENV var1=Tutorial var2=point 设置环境变量
28. 设置container的工作路径
WORKDIR dirname #设置工作目录
29. ??多个containers之间如何通信??
Container Linking better option than exposing ports
docker run --link=...
30. Data Volumes
- 当container创建时初始化
- 能够共享,以及重用在许多container之间
- container删除了,他还在
- 任何改变,直接体现
run的时候 指定 -v map the volume in the container to a local volume
sudo docker run –d –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins
will see all the container files in /home/demo
31. 创建Volume
docker volume create --name=volumename -opt options
32. 查看volume list
docker volume ls
33. container之间通信,container和Docker host之间通信
docker network ls
docker network inspect networkname
34. 多个containers为一个service服务
Docker Compose
an application which required NGINX and MYSQL
下载docker-compsoe
docker-compose version
docker-compose.yml
keywords:
./docker-compose up #run docker-compose
Kubernetes
管理services - service由多个containers组成
35. docker的端口映射怎么搞
在容器启动时,不指定端口映射,在容器外部无法通过网络来访问容器内的应用和服务
run的时候-p -P参数来指定
-p指定要映射的端口,一个指定端口上只可以绑定一个容器
-P将容器内部开放的网络端口随机映射到宿主机的一个端口上
--link 使多个container互联,而不暴露端口
docker run --name webapp --link mysql:db -it -d ubuntu /bin/sh
端口映射支持的格式
ip:hostport:containerport #指定ip、指定宿主机port、指定容器port
ip::containerport www.365soke.cn #指定ip、未指定宿主机port(随机)、指定容器port
hostport:containerport #未指定ip、指定宿主机port、指定容器port
docker port --help
Docker的文件系统是如何工作的
Docker镜像是由多个文件系统(只读层)叠加而成
当我们启动一个容器的时候,Docker会加载只读镜像层并在其上(译者注:镜像栈顶部)添加一个读写层
为了能够保存(持久化)数据以及共享容器间的数据,Docker提出了Volume的概念
-
容器的数据被保存在容器之内,它只在容器的生命周期内存在,会随着容器的被删除而被删除。当然,也可以使用 docker commit 命令将它持久化为一个新的镜像。
- 它可以绕过默认的联合文件系统,而以正常的文件或者目录的形式存在于宿主机上
- 使用 -v 来挂载主机上的一个文件到容器内的一个文件
docker底层架构
https://blog.csdn.net/CleverCode/article/details/83863925
C/S
https://www.cnblogs.com/zhangxingeng/p/11236968.html