Linux_Ubuntu 下的docker使用
docker的安装
Install Docker Engine on Ubuntu | Docker Docs
参考官方网址下载即可
添加docker用户组
将当前用户添加到docker用户组 为了避免每次使用docker命令都需要加上sudo权限,可以将当前用户加入安装中自动创建的docker用户组:
sudo usermod -aG docker $UER
(详细信息可以参考官方文档)
执行完此操作后,需要退出服务器,再重新登录回来,才可以省去sudo权限。
常用命令
镜像:
1.拉取一个镜像
以ubuntu 20.04为例,以镜像名:版本号
的格式拉取
sudo docker pull ubuntu:20.04
2.列出本地所有镜像
sudo docker images
3.删除镜像
还是以ubuntu:20.04
为例
sudo docker image rm ubuntu:20.04
- 或者
sudo docker rmi ubuntu:20.04
4.将镜像保存为文件
sudo docker save -o 任意名字.tar ubuntu:20.04
这会在当前目录生成一个任意名字.tar
,你也可以加上路径,就会在路径中生成。
例如:sudo docker save -o tmp_Save/ubuntu_20_04.tar ubuntu:20.04
可以ls
查看一下是否成功生成
再ls -l
查看一下文件权限,发现权限为-rw-------
。
粗略介绍一下这个权限:
我们除去第一个-
,三个三个看,rw-
,---
,---
,分别代表文件所有者用户(u),文件所有者所在组(g),其他用户(o),三个符号分别代表r(读),w(写),x(执行)权限。
所以-rw-------
表示除了文件所有者用户有读、写权限之外,其他用户都没有任何权限。
我们执行sudo chmod o+r ubuntu_20_04.tar
,可以为其他用户添加读权限
这里我将面的镜像保存为了ubuntu_20_04.tar
文件 ,o+r
表示给o添加r。
5.利用镜像文件生成镜像
假设你现在有个镜像压缩包为ubuntu_20_04.tar
文件,我们可以
sudo docker load -i ubuntu_20_04.tar
这样就生成了一个镜像,可以使用sudo docker images
查看一下是否成功生成
6.利用容器创建镜像
sudo docker commit 容器 镜像名称
容器:
1.利用镜像创建容器
sudo docker create -it ubuntu:20.04
2.列出本地所有容器
sudo docker ps -a
加了-a
是显示所有容器,不加-a
是显示所有正在运行的容器
3.启动容器
sudo docker start 容器
4.停止容器
sudo docker stop 容器
5.重启容器
sudo docker restart 容器
6.删除容器
sudo docker rm 容器
删除所有已停止的容器:
sudo docker container prune
7.创建并启动(进入)容器
sudo docker run -itd ubuntu:20.04
创建并启动容器。
如果改成:sudo docker run -it ubuntu:20.04
就是创建并启动并进入容器
8.进入容器
sudo docker attach 容器
9.退出并挂起容器
先按ctrl + p
,再按ctrl + q
这样退出之后容器不会关闭,如果ctrl + d
直接退出容器的话,容器会被关闭
10.不进入容器执行命令
sudo docker exec 容器 命令
例如:sudo docker exec c659fc67496e ls
11.将容器保存为文件
sudo docker export -o xxx.tar 容器
与上面的将镜像保存为文件一样有权限问题
12.利用容器文件生成镜像
sudo docker import xxx.tar 镜像名称
这里不输入镜像名称的话默认为
容器 -> 文件 -> 镜像 与 镜像 -> 文件 -> 镜像的区别,前者会会丢弃历史记录和元数据信息,仅保存容器当时的快照状态,例如连镜像名称都丢弃了,后者的话会保存完整记录,体积更大
13.不进入查看容器内的所有进程
sudo docker top 容器
14.不进入查看所有启动中容器的统计信息
sudo docker status
15. 本地与容器之间传送文件
sudo docker cp 路径 容器:路径
或者 sudo docker cp 容器:路径 路径
这里传文件夹也不需要-r
参数
16.重命名容器
sudo docker rename 原容器名 新容器名
17.修改容器性质
以存储空间上限为例:
sudo docker update 容器 --memory 500MB
还可以改cpu等等,可以参考docker update | Docker Docs