前言
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
1.卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
2.使用存储库安装
- 安装依赖
sudo apt-get update sudo apt-get install ca-certificates curl gnupg lsb-release
- 添加 Docker 的官方 GPG 密钥:
【官方】curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings docker-archive-keyring.gpg
【推荐-阿里云】
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
- 设置稳定的存储库
【官方】echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
【推荐-阿里云】
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
- 安装 Docker 引擎
更新 apt 软件包索引,并安装最新版本的 Docker Engine,Containerd 和 Docker Composesudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
- 使用国内镜像加速
sudo vi /etc/docker/daemon.json
{ "registry-mirrors": [ "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com", "https://09ki0bkg.mirror.aliyuncs.com" ] }
- 重启 Docker 服务
sudo service docker restart
- 查看 Docker 版本
docker version
- (如果提示需要权限)
- 将docker加入用户组
sudo usermod -aG docker
- 关闭当前shell,重新进入
- 将docker加入用户组
- 通过运行 Hello-World 镜像,验证是否正确安装 Docker 引擎
sudo docker run hello-world
- 升级Docker引擎
sudo apt-get update
docker 基本命令
-
docker images
- -a 列出本地所有image,含已关闭的image
- -q 只显示image的id
-
docker search <REPOSITORY>
在远程仓库中搜索image
- –limit
只显示 个结果
- –limit
-
docker pull <REPOSITORY>[:TAG]
从远程仓库拉取镜像
-
docker system df
查看镜像/容器/数据卷所占空间
-
docker rmi
删除某个image
docker rmi <IMAGE ID>
docker rmi <REPOSITORY[:TAG]>
-
docker run <REPOSITORY>[:TAG]
参数 解释 –name 为容器指定一个名称 -d 后台运行,即守护进程 -i 以交互模式运行容器 -t 为容器重新分配一个伪输入中断 -p : 指定端口映射,如8080:80 -P 随机端口映射 docker run -it centos /bin/bash
docker -it --name centos8 centos /bin/bash
-
dockerr ps
- -a 列出本地所有容器,含已启动和已关闭的容器
- -l 显示最近创建的容器
- -n 显示最近n个创建的容器
- -q 静默模式,只显示容器编号
-
docker start <CONTAINER ID>|<NAME>
启动容器
docker restart <CONTAINER ID>|<NAME>
重启容器
docker stop <CONTAINER ID>|<NAME>
停止容器
docker kill <CONTAINER ID>|<NAME>
强制停止容器
ctrl+p+q
后台运行容器
docker rm <CONTAINER ID>|<NAME>
删除已停止的容器
-
docker rm -f $(docker ps -a -q)
-
docker ps -a -q | xargs docker rm
删除所有容器
-
-
docker logs <CONTAINER ID>|<NAME>
查看容器日志
-
docker top <CONTAINER ID>|<NAME>
查看容器内部内存占用
-
docker inspect <CONTAINER ID>|<NAME>
查看容器内部细节
-
docker exec -it <CONTAINER ID>|<NAME> /bin/bash
打开新的容器终端,exit只会退出exec,不会停止容器
-
docker attach <CONTAINER ID>|<NAME>
重新进入容器,exit退出会导致容器停止
-
docker cp <CONTAINER ID><:CONTAINER PATH> <HOST PATH>
从容器拷贝文件到宿主机
docker cp <HOST PATH> <CONTAINER ID><:CONTAINER PATH>
从宿主机拷贝文件到容器