前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《 Docker 技术入门与实战 》读书笔记 ( CentOS 安装 Docker )

《 Docker 技术入门与实战 》读书笔记 ( CentOS 安装 Docker )

作者头像
微风-- 轻许--
发布2022-04-13 15:44:06
4110
发布2022-04-13 15:44:06
举报
文章被收录于专栏:java 微风java 微风

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

以下全文内容出自书目:《 Docker 技术入门与实战 》

1. Docker 镜像:一个只读模板,是创建容器的基础 。

2. Docker 容器:从镜像创建运行的实例 ,可以看作是一个简易版本的 Linux 系统环境 。

3. Docker 仓库:集中存放镜像文件的场所 。

4. Docker 目前只能运行在 64 位平台上,并要求内核版本不低于 3.10 (可用 uname -a 或者 cat /proc/version 查看自己内核详情)。

5. Ubuntu 安装 Docker :apt-get install -y docker-engine ( 见书P12 ) 。

6. CentOS 安装 Docker :

7. docker 服务开启/重启方式:systemctl start docker.service 、 service docker restart 。

8. 查看 docker 版本信息: docker version 。

9. 查看镜像 : docker images

代码语言:javascript
复制
    -a : 列出所有镜像。

    --digests=true|false :列出镜像数字摘要,默认为否。

    -f ,--filter=[] : 过滤列出镜像,如 dangling=true 只显示没有被使用的镜像 。

    --format="TEMPLATE":控制输出格式,如 ID 代表 ID 信息, .Repository 代表仓库信息 。

    --no-trunc=true|false : 是否截断输出结果中太长的部分 。

    -q ,--quiet=true|false : 仅输出 ID ,默认为否 。

-------------------------------------- 以下更新于2018.7.9 --------------------------------------

10. 查看镜像创建过程: docker history 镜像名。

11. 删除镜像: docker rmi 镜像名、镜像ID(当镜像只剩下一个 tag 时会彻底删除镜像,命令 docker images 可查看镜像)。

12. 查看所有容器 : docker ps -a 。

13. 镜像导出到本地文件:docker save -o xxx.tar 原镜像名。

14. 镜像导入: docker load < 镜像名 或 docker load --input 镜像名,如 docker load < xxx.tar 。

( A导出 + B导入 + run 可以把一个工程从服务器 A 拷贝到服务器 B 并部署运行,见第 20、21 点 。)

15. 上传镜像到仓库 :docker push ,默认是上传到 Docker Hub 官方仓库 。

16. 创建容器 : docker create 镜像名,参数如下: (另一种创建方式见第 28 点。)

代码语言:javascript
复制
    -d:后台运行。

    -i:保持标准输入打开,默认为 false 。

    --net="bridge" :指定容器网络模式 。

    --rm=true :容器退出后自动删除 ( 不能和 -d 同时使用 )。

    -t: 分配一个伪终端,默认为 false 。

    -v | --volume=本机目录 : 容器目录 : 挂载主机上文件卷到容器 。

    --volume-from=[ ]  : 从其它容器挂载卷 。

    -w | --workdir=" "  : 容器的默认工作目录 。 

    -e | --env=[ ] :指定容器环境变量 。

    -h | --hostname=" "  : 指定容器内的主机名 。 

    --link=[ < name or id >:alias ] :链接到其它容器 。 

    --name=" " :指定容器名 。 

17. 终止运行中的容器 : docker stop 。

18. 进入容器以便可以执行任意命令: docker exec 容器名、id,如:docker exec -it 镜像id /bin/bash 。参数如下:

代码语言:javascript
复制
    --privileged=true :给执行命令以最高权限,默认为 false 。

    -u | --user=" " :执行命令的用户名或 ID 。

    -i : 开启标准输入 。 

    -t:分配伪终端,默认为 false 。

19 . 删除容器:docker rm ,参数如下:

代码语言:javascript
复制
    -f: 强行终止并删除运行中的容器 。

    -l | --link=false : 删除容器链接,但保留容器 。

    -v | --volumes=false :删除容器挂载的数据卷 。

20. 导出容器:docker export 。

代码语言:javascript
复制
-o 指定导出的 tar 文件,也可以直接重定向实现

如: docker export -o test.tar 容器名、id 或 docker export 容器名、id > test.tar 。

21. 导入已导出的 tar 文件生成镜像:docker import 。

代码语言:javascript
复制
 -c | --change=[ ] 导入时执行对容器进行修改的 Dockerfile 。

如: docker import test.tar -test/ubuntu:v1.o 。

22. docker load 和 docker impoer 区别:

代码语言:javascript
复制
 load 命令导入镜像存储文件到镜像库,将保存完整记录,体积大。

 import 命令导入一个快照到本地镜像库,会丢弃所有历史记录和元数据信息。   

23. 搭建本地私有仓库:docker run -d -p 5000:5000 registry ,见书 P49 。

这会自动下载并启动一个 registry 容器,创建本地的私有仓库 。

代码语言:javascript
复制
 -v : 将镜像文件存放在本地指定路径,默认是将仓库创建在 /tmp/registry 目录下 。

如:docker run -d -p 5000:5000 -v /opt/data/registry:tmp/registry registry 则会将上传的镜像放到 /opt/data/registry 目录下 。

24. 数据卷是可供容器使用的特殊目录,它将主机操作目录直接映射进容器。

代码语言:javascript
复制
-v 可以在 docker run 运行的容器内创建一个数据卷。多次重复使用则创建多个数据卷。

- p 是将容器服务暴露的端口,是自动映射到本地主机的临时端口 。   

如:docker run -d -p --name web -v /webapp train python app.py

用镜像 train 创建了容器 web ,并创建了一个数据卷挂载到容器的 /webapp 目录 。

代码语言:javascript
复制
-v 也可以指定挂载一个本地已有目录到容器中去作为数据卷 。

挂载数据卷的默认权限是 读写,可以用 ro 指定为只读,这样容器对所挂载数据卷内的内容就不能修改了 。

如: docker run -d -p --name web -v /src/webapp : /opt/web : ro train python app.py

上面是加载主机的 /src/webapp 目录到容器的 /opt/web 目录 ,并且是只读 。

// 25. 利用数据卷容器来迁移数据见书 P55 。

26. 安装 ping :apt-get install -yqq inetutils-ping 。

27. 通常 Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令、容器启动时执行指令。

参数说明:

28. docker build 创建容器 :docker build Dockerfile文件名 。

代码语言:javascript
复制
    -t:指定生成镜像的标签名,即 tag 。

    -f:若 Dockerfile 不在当前路径下,可使用 -f 来指定 Dockerfile 路径 。

如: docker build -t sshd:docker . 最后一个“.”表示使用当前路径下的 Dockerfile 文件 。

29. docker 安装和使用各个操作系统见书 P71 。

30. 安装 openssh-server : apt-get install openssh-server -y 。

31. 查看端口占用: netstat -tunlp 。

32. Docker Web 服务与应用(Apache、Nginx、Tomcat、Jetty、LAMP、CMS)见书 P83 。

33. 安装运行 mysql :( 使用官方镜像快速启动一个 mysql 服务实例 )

docker run --name jy_mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql:latest 。

执行完,mysql 就在 docker 中安装好了,可用 navicat 直接访问 。

本地找不到的镜像会自动从Docker 仓库中下载最新版本。

进入 mysql 容器: docker exec -it jy_mysql bash ,查看日志 :docker logs jy_mysql 。

34. 安装运行 MongoDB: docker run --name mongoDB -d mongo 。

35. 安装运行 Redis:docker run --name redis -d redis 。

36. 安装运行 memcache : docker run --name memcache -d memcached 。

37. 搭建 cassandra 集群见书 P109 。

Docker 快速部署 RabbitMQ、Celery、Hadoop、Spark、Elasticsearch 见书P112 。

-------------------------------------- 以下更新于2018.7.28 --------------------------------------

38. Docker Compose安装命令:sudo pip install -U docker-compose。

代码语言:javascript
复制
-f | --file :指定 compose 模板文件,默认为 docker-compose.yml ,可多次指定。

-p | --projrct-name:指定项目名称,默认使用所在目录名称为项目名。

--x-networking :使用 docker 可插拨网络后端特性。

--x-network-driver DRIVER :指定网络后端驱动,默认为 brige。

-v | --version :输出版本并退出。

--verbose :输出更多调试信息。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/07/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档