《 第一本Docker书 》读书笔记 --- Docker 各项操作命令及参数说明(docker run 命令各个参数说明)

xiaoxiao2021-02-28  29

PS :个人所有读书笔记只记录个人想要的内容,很可能原书大量内容没有纳入笔记中... ... 

1. 可用 docker info 查看程序是否正常工作。

2. docker run 如果本地没有对应镜像,会从Docker 官方仓库 Docker Hub 下载该镜像。

docker run 命令会覆盖 CMD (见第19条)指令。

docker run 参数说明: (此项是从书中多个地方整理而成,实际书中对此命令各个参数的讲解分布在多个章节中)

-i :开启标准输入。 -t :创建伪 tty 终端。 -it :合起来实现和容器交互的作用,运行一个交互式会话 shell 。(参见第 5 点) -d : 后台运行。 -g:前台运行。 -w:运行时覆盖工作目录。 -e:设置环境变量。 -p:小写 p 是指定要映射的端口 ,大写 P 则是随机映射一个在范围 49000~49900 内的端口到内部容器开放的网络端口 。 如: -p 8080 : 80 。( 端口指定有三种格式,这只是其中一种 )。 --name:给容器命名,容器命名必须是唯一的。 --rm:只用一次就删除。( 容器进程运行完后会自动删除容器。) -h:设置容器主机名,如 docker run -h 主机名 ... -v: 挂载,用冒号“:”分隔,形如 源目录:容器内目录,若容器目录不存在,Docker 会自动创建一个。 可在容器目录后加上 rw(可读可写) 或者 ro(只读) 指定容器内目录的读写状态。 --net:指定容器运行于哪个网络。 如:docker network connect app db,把已有容器 db 添加到 app 网络。 docker run --net=app --name=db 镜像名。 --link:创建两个容器间的客户-服务链接,这个标志还需要2个参数:要链接的容器的名字、链接别名。 如:docker run --link redis : db 镜像名。 --volumes-from:把指定容器中的所有卷加入新创建的容器中,如 docker run --volumes-from 已存在容器 ... --restart=always : 无论容器退出代码是什么,Docker 都会自动重启该容器。 --restart=on-failure : 只有当退出代码非 0 才自行重启。 --restart=on-failure:5 :退出代码非 0 时,自行重启,最多重启5次 。

3. docker ps : 查看容器。  

-a :所有 。 -l:列出最后一个运行的容器。 -q:只显示容器 ID。

4. 启动容器:docker start 。重启:docker restart 。

5. 运行一个交互式会话 shell :docker attach ,退出 shell 容器停止运行 。 ( 要保留容器运行可用 exec 命令,见第7点。)

6. 日志跟踪: docker logs -ft --tail=1000 容器ID/容器名。  

-f : 刷新最新日志。 -t:为每条日志加上时间戳。 --tail=1000 输出最新1000行日志内容。

7. 在容器中运行后台任务:docker exec -d 容器名 touch /etc/new_file。   -d : 后台运行。这样就在运行的容器内创建了一个空文件:/etc/new_file。exec 可在运行中的容器中执行维护、监控、管理等任务。

8. docker inspect : 返回容器配置信息。

9. 停止容器:docker stop 容器id/容器名 或者 docker kill 容器id/容器名 。

10. 删除容器:docker rm 容器id/容器名。删除前必须停止容器。

-f :强制删除运行中的容器。

11.docker 镜像是由文件系统叠加而成。位于下层的镜像称为父镜像,最底层的为基础镜像。

12. 列出镜像:docker images 镜像名 。不跟镜像名则查看所有镜像。通常镜像都有一个标签:tag 。

13. 拉取镜像: docker pull 镜像名:镜像 tag ,如:docker pull ubuntu:12.4 。不带 tag 则拉取最新镜像。

14.用户仓库命名:用户名:仓库名。

15. 查找镜像:docker search 镜像名。会查找所有带有这个名字的镜像。   

-s N :指定显示评价为 N 星以上的镜像。

16. 提交镜像:docker commit 。

-m:说明信息 。 -a:提交人,作者信息。

17. 构建镜像:docker build Dockerfile 。(Dockerfile 见第19条)      

--expose 指定对外公开的端口。 -t : 设置仓库和镜像名。如:-t="jam/my_web" 仓库为 jam,镜像名为 my_web 。 -f:指定 Dockerfile 的路径,默认使用当前路径下的 Dockerfile 文件。 --no-cache :忽略构建缓存。(默认如果缓存中已有部分镜像层则不会从第一层镜像开始构建)。

18. 查看容器端口映射: docker port 容器id/容器名 端口号。如: docker port  6751rerefggf 80 。

19.  Dockerfile 中指令: 

RUN 会在当前容器中运行的指令。 ENV:设置环境变量。 CMD:容器启动时运行的指令,如果有多条,只有最后一条生效。 ADD :用来把建路径下的文件和目录复制到镜像中。 LABEL:为 Docker 镜像添加元数据。

----------------------------------------- 以下更新于 2018.7.8 ----------------------------------------- 

20. Dcocker push 镜像名:推送镜像。

21. 卷是在一个或者多个容器内为 Docker 提供持久数据或者共享数据的目录。             

1)卷可以在容器间共享和重用,可以挂载到任意容器。 2)共享卷时不一定要运行相应容器。 3)对卷的修改会直接在卷上反映出来,可以在不提交镜像修改情况下向镜像中加入数据,并在容器间共享这些数据。 4)更新镜像不会修改卷。 5)卷会一直存在,直到没有任何容器使用它们。

// 22.  Docker 和 Jenkins 持续集成见书 P132 。

23.  docker kill -s <signal> <container> : 发送信号 。发送指定信号给容器。

// 24. Docker Compose 编配和集群见书 P186 。

25.  服务发现是分布式应用程序之间管理相互关系的一种机制,服务发现允许某个组件(分布式多个应用中的某一个应用)要想要与其它交互时,自动找到对方。服务发现作为分布式不同组件之间的胶水,其本身还需要足够动态、可靠、适用性强,并可快速一致地共享各个服务的数据。

26. Consul 是一个使用一致性算法的特殊的数据存储器,可作为服务发现的工具。使用方式见书 P197。

27. Docker Swarm 是一个原生的 Docker 集群管理工具。详解见书 P221 。

28. 重新加载启动 Docker 守护进程: systemctl --system deamon-reload 。

29. 在 Ubuntu 上安装 git : apt-get -y install git make 。

30. 在 Red Hat 及其相关衍生版本上安装 git : yum install git make 。

31. 从容器中退出命令: Ctrl + D 或者 exit 。

32. 开启、关闭 docker : service docker start  、  service docker stop 。

 

更多相关内容参见:《Docker 技术入门与实战》

 

 

 

 

转载请注明原文地址: https://www.6miu.com/read-2450368.html

最新回复(0)