一.官网安装文档 (基本按官方文档安装)
Install Docker Engine on Ubuntu | Docker Docs
二.安装步骤
1.docker 需要64位操作系统、linux内核要在3.1以上
#uname -r
2.卸载可能存在的旧版本
#sudo apt-get remove docker docker-engine docker-ce docker.io
3.更新apt包索引
#sudo apt-get update
4.安装依赖
#sudo apt-get install ca-certificates curl gnupg
5.设置GPG key 权限
#sudo install -m 0755 -d /etc/apt/keyrings
6.添加Docker官方的GPG密钥
#curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
7.获取执行权限
#sudo chmod a+r /etc/apt/keyrings/docker.gpg
8.将仓库添加到Apt源
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#sudo apt-get update
9.安装docker
#sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
三、docker启动与关闭命令
1.启动
#sudo systemctl start docker
2.关闭
#sudo systemctl stop docker
3.查看状态
#sudo systemctl status docker
4.查看端口号(docker 默认2375)
#netstat -ntlp
5.设置开机自启
#sudo systemctl enable docker
6.查看docker版本
#sudo docker version
7.查看Docker概要信息
#sudo docker info
8.查看Docker总体帮助文档
#sudo docker --help
四、docker镜像命令
1.列出本地主机上的镜像
#sudo docker images
参数:
-a
:列出所有镜像(含历史镜像)
-q
:只显示镜像ID
-f
:过滤
2.在远程仓库中搜索镜像
#docker search 镜像名称
参数:
-f
:过滤
--limit 数量
:只展示前几项
3.下载镜像
#docker pull 镜像名称[:tag]
注:不加 tag 时,默认下载最新的镜像(即tag为latest
)
4.查看占据的空间
#docker rmi 镜像名称/ID
5.删除镜像
#docker rmi 镜像名称/ID
6.删除全部镜像
#docker rmi -f $(docker images -qa)
五、容器命令
1.新建启动容器
#sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用的参数:
--name
:为容器指定一个名称
-d
:后台运行容器并返回容器ID,也即启动守护式容器
-i
:以交互模式(interactive)运行容器,通常与-t
同时使用
-t
:为容器重新分配一个伪输入终端(tty),通常与-i
同时使用。也即启动交互式容器(前台有伪终端,等待交互)
-e
:为容器添加环境变量
-P
:随机端口映射。将容器内暴露的所有端口映射到宿主机随机端口
-p
:指定端口映射
-p
指定端口映射的几种不同形式:
-p hostPort:containerPort
:端口映射,例如-p 8080:80
-p ip:hostPort:containerPort
:配置监听地址,例如-p 10.0.0.1:8080:80
-p ip::containerPort
:随机分配端口,例如-p 10.0.0.1::80
-p hostPort1:containerPort1 -p hostPort2:containerPort2
:指定多个端口映射,例如-p 8080:80 -p 8888:3306
2.启动交互式容器(exit退出)
# -i 交互模式
# -t 分配一个伪输入终端tty
# ubuntu 镜像名称
# /bin/bash(或者bash) shell交互的接口
docker run -it ubuntu /bin/bash
3.启动守护式容器
#docker run -d 容器名
4.列出正在运行的容器
#docker ps [OPTIONS]
参数:
-a
:列出当前所有正在运行的容器+历史上运行过的容器
-l
:显示最近创建的容器
-n
:显示最近n个创建的容器
-q
:静默模式,只显示容器编号
5.启动已经停止的容器
#docker start/stop 容器ID或容器名
6.重启容器
#docker restart 容器ID或容器名
7.强制停止容器
#docker kill 容器ID或容器名
8.删除已经停止的容器
#docker rm -f 容器ID或容器名
一次删除多个容器:
#docker rm -f ${docker ps -a -q}
或者
#docker ps -a -q | xargs docker rm
9.查看容器日志
#docker logs 容器ID或容器名
10.查看容器内运行的进程
#docker top 容器ID或容器名
11.查看容器内部细节
#docker inspect 容器ID或容器名
12.进入正在运行的容器,并以命令行交互:
#docker exec -it 容器ID bashShell
重新进入:#docker attach 容器ID
docker exec
和 docker attach
区别:
attach
直接进入容器启动命令的终端,不会启动新的进程,用exit
退出会导致容器的停止
exec
是在容器中打开新的终端,并且可以启动新的进程,用exit
退出不会导致容器的停止
13.容器和宿主机文件拷贝
容器内文件拷贝到宿主机:#docker cp 容器ID:容器内路径 目的主机路径
宿主机文件拷贝到容器中:#docker cp 主机路径 容器ID:容器内路径
14.导入和导出容器
export
:导出容器的内容流作为一个tar归档文件(对应import
命令);
import
:从tar包中的内容创建一个新的文件系统再导入为镜像(对应export
命令);
事例:
# 导出
# docker export 容器ID > tar文件名
docker export abc > aaa.tar# 导入
# cat tar文件 | docker import - 自定义镜像用户/自定义镜像名:自定义镜像版本号
cat aaa.tar | docker import - test/mytest:1.0.1
15.将容器生成新镜像
#docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[tag]
六、idea 连接docker
1.先安装docker插件
2.修改docker远程配置
#vim /usr/lib/systemd/system/docker.service
添加 -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 (如下图)
3.在左下解services添加连接、如下图