Docker 容器
概念
虚拟化
- 完全虚拟化:系统、硬件、软件、驱动等完全虚拟,完全隔离,如 vmware、kvm、openvz。
- 半虚拟化:与物理机共享硬件资源和驱动,占用资源小,如 docker 容器、k8s。
虚拟机和容器的区别
安装
docker 的发行版
docker.io
:非官方版,debian 维护的一个 docker 分支版本。docker.ce
:官方社区版。docker.ee
:商业许可版。
docker.ce
的安装
[!TIP]
参考 阿里云 docker 安装教程。
#更新包管理工具
sudo apt-get update
#添加 Docker 软件包源
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
#安装 Docker 社区版本,容器运行时 containerd.io,以及 Docker 构建和 Compose 插件
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#启动 Docker
sudo systemctl start docker
#设置 Docker 守护进程在系统启动时自动启动
sudo systemctl enable docker
docker.io
的安装
apt install docker.io
docker 的使用
基础命令
搜索镜像
docker search [images]
下载
docker pull image名字:image版本 #如果不加镜像版本,则默认是 latest 最新版
查看镜像
docker images
删除镜像
docker rmi imageID #此处的 镜像 ID 可以是其 ID 的前三位
docker rmi image名字:版本号 #若不加版本号,则默认 latest 最新版
查看镜像的详细信息
docker inspect imageID
容器命令
交互式开启容器
docker run -it imageID bash
守护进程式开启容器(放在后台运行)
docker run -d imageID
docker run -d -p 自己的端口:80 imageID #守护进程式开启容器,并端口映射
查看在后台的容器
docker ps -a
docker container ls -a
删除容器
docker rm containerID #只能删除已经关闭的容器
docker rm -f containerID #强制删除容器
查看容器的详细信息(如 IP 地址)
docker inspect containerID
关闭容器
docker stop containerID
开启容器
docker start containerID
进入容器
docker exec -it containerID bash #只能进入已经运行的容器
查看日志
docker logs containerID
文件传输
docker cp 自己的文件路径 containerID:容器内部的文件