Docker学习笔记

推荐阮一峰老师的Docker入门教程

安装

镜像(image)

镜像相关的命令,采取规范的格式比较容易记忆:

docker image ls
docker image rm [image_name]
docker image pull [image_name]
docker image build -t [image_name] [dockerfile_path]

容器(container)

同样的,容器相关命令的规范形式:

docker container ls            # 列出正在运行的容器
docker container ls --all      # 列出所有容器,包括停止终止的
docker container kill [container_id]
docker container rm [container_id]
docker container run [-it] [-p xxx:xxx] [image_name] [script]

docker 与 kubernetes

就在Docker容器技术被炒得热火朝天之时,大家发现,如果想要将Docker应用于具体的业务实现,是存在困难的——编排、管理和调度等各个方面,都不容易。于是,人们迫切需要一套管理系统,对Docker及容器进行更高级更灵活的管理。

就在这个时候,K8S出现了。

K8S,就是基于容器的集群管理平台,它的全称,是kubernetes。

10分钟看懂Docker和kubernetes

其他

因为使用集群的镜像,不能随意修改更新镜像,有诸多限制。部分曲线救国的方法:

获取容器内的root权限

首先你的container得正在运行
可通过sudo docker container ls或者sudo docker ps查看容器的CONTAINER ID
最后执行命令(其中7509371edd48 为上面查到的CONTAINER ID)

sudo docker exec -it -u root 7509371edd48 bash

更换容器内软件的版本

比如说更新cmake的版本。
看了看PATH中包含/usr/local/bin目录,而此目录下为空,我们可以将外部的软件(或符号链接)目录直接挂载为该目录,这样系统在查找相应的软件时,可以使用我们自己挂载的版本。

无sudo权限以及非root的用户apt安装软件

虽然通过前面的方法可以获取容器的root权限,但注意在容器内做出的修改并不能保存。
因为apt-get install不能指定安装路径,我们直接使用apt-get安装的软件在容器退出之后不能留存,下次启动容器仍然无法使用。
方法一:
通过源码方式安装软件,可以指定其安装路径。
因此我们可以先安装到自己有权限访问的目录下,然后将安装目录挂载为系统PATH中的目录(也可以每次启动docker后修改PATH变量),这样就可以使用该软件了。
方法二:
获得sudo权限后,直接使用apt-get安装,然后使用dpkg -L package-name命令查看安装位置,将所需的目录进行拷贝,下次启动容器时挂载到对应位置。

posted @ 2020-08-17 22:10  tofengz  阅读(179)  评论(0编辑  收藏  举报