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]

其他

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

获取容器内的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中的目录,这样就可以使用该软件了。

原文地址:https://www.cnblogs.com/tofengz/p/13520439.html