Docker的安装
卸载旧版本
1 | sudo apt-get remove docker \ |
使用apt安装
1 | sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin |
- 或者我这是没有上述的
docker-ce
等包,所以就安装了docker-io
,但也能用。
运行镜像
如果本地没有镜像会远程拉取。
1
docker run hello-world
然后在2024年的今天,在国内基本已经不能如此拉取了。甚至连几个大的镜像站也关闭了。因此需要添加其他的镜像站。
添加到
/etc/docker/daemon.json
,如果没有这个文件就创建一个。1
vim /etc/docker/daemon.json
输入以下内容并保存
1 | { |
Docker的操作
基础操作
查看的Docker版本
1
docker --version
查看Docker信息
1
docker info
查看已有的镜像
1
docker images
查看正在运行的容器
1
docker ps -a
关闭/打开正在运行的容器。
CONTAINER ID
和NAMES
为刚刚看到的容器属性,用哪个都行。1
2docker stop <CONTAINER ID> <NAMES>
docker start <CONTAINER ID> <NAMES>进入已经打开了的容器,
CONTAINER ID
和NAMES
为之前看到的容器属性,用哪个都行。1
docker attach <CONTAINER ID> <NAMES>
退出但不关闭容器
1
2
3
4// 输入Ctrl P Q
//退出并关闭容器
exit修改容器名称
1
docker rename 原容器名称 新容器名称
删除容器。
CONTAINER ID
和NAMES
为刚刚看到的容器属性,用哪个都行。1
2docker rm <CONTAINER ID> <NAMES>
docker rm <CONTAINER ID> <NAMES>
打包和导入导出镜像
将容器打包为镜像
1
2
3
4
5
6
7
8
9
10docker commit -m "What you did to the image" -a "Author Name" container_id repository/new_image_name
/*
* 参数说明
* 参数说明:
* commit:提交命令
* -m:提交的注释
* -a:作者的名字
* container_id:容器的id
* repository/new_image_name:作者自定义的库名(一般和用户名一致)/镜像名 */导出容器的镜像,
CONTAINER ID
为之前看到的容器属性。1
2
3
4docker export CONTAINER ID > 路径/文件名.tar
//导出多个容器镜像为一个压缩包
docker save CONTAINER ID CONTAINER ID CONTAINER ID > 路径/文件名.tar导入镜像
1
2
3
4docker import - 仓库:名称 < 路径/文件.tar
//从一个压缩包导入多个容器镜像
docker load --input 路径/文件名.tar启动导入的镜像,
COMMAND
是之前看到的镜像的一个属性。1
docker run 镜像id COMMAND
直接下载镜像
直接下载镜像而不下载docker。这么一来就不用过多担心国内无法拉取docker镜像的问题。完全可以直接挂梯子拉下来然后再导入进去。
(为什么不直接挂代理拉下来呢)不过需要注意的是,拉下来后的导入应该使用
load
而不是import
。