ubuntu下Docker的安装卸载以及常用命令介绍
Posted 非晚非晚
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu下Docker的安装卸载以及常用命令介绍相关的知识,希望对你有一定的参考价值。
Docker 是一个开源的应用容器引擎,基于
Go 语言
并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植
的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口
(类似 iPhone 的 app),更重要的是容器性能开销极低。
我这里使用的是ubuntu系统,如果想要使用其它系统进行操作,可以查阅官方网站。目前Docker支持以下的ubuntu版本:
- Ubuntu Hirsute 21.04
- Ubuntu Groovy 20.10
- Ubuntu Focal 20.04 (LTS)
- Ubuntu Bionic 18.04 (LTS)
- Ubuntu Xenial 16.04 (LTS)
1. 安装和卸载
1.1 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
如果想进行彻底卸载,或者打算再也不用Docker,可以依次执行以下命令:
# 卸载
sudo apt-get purge docker-ce docker-ce-cli containerd.io
# 删除目录
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
1.2 设置仓库
- 更新apt包索引
sudo apt-get update
- 安装 apt 依赖包,用于通过HTTPS来获取仓库
sudo apt-get install \\
apt-transport-https \\
ca-certificates \\
curl \\
gnupg \\
lsb-release
- 添加官方的GPG密钥
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
- 设置Docker稳定版仓库
可以设置官方版本,也可以设置国内的版本,推荐使用国内版本,访问速度会更快
。
# Docker官方版本
sudo add-apt-repository \\
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \\
$(lsb_release -cs) \\
stable"
# 中科大版本
sudo add-apt-repository \\
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \\
$(lsb_release -cs) \\
stable"
1.3 安装Docker Engine-Community
- 方式一:安装最新版本
安装最新版本的 Docker Engine-Community 和 containerd
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
- 方式二:安装指定版本的Docker
如果想安装指定版本,可以选择下列的方式,首先查询自己的可用的版本
apt-cache madison docker-ce
然后会列出自己的版本:
docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.1~ce~3-0~ubuntu | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.0~ce~3-0~ubuntu | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu xenial/stable amd64 Packages
...
使用下列命令安装指定版本:
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
1.4 检查Docker CE是否安装成功
sudo docker run hello-world
如果输出下列命令表示安装成功
2. 常用命令
可以使用docker --help命令查看常用命令,同理其他命令也可使用help命令进行查看,例如:
docker images --help
会出现下列输出:
Usage: docker images [OPTIONS] [REPOSITORY[:TAG]]
List images
Options:
-a, --all Show all images (default hides intermediate images)
--digests Show digests
-f, --filter filter Filter output based on conditions provided
--format string Pretty-print images using a Go template
--no-trunc Don't truncate output
-q, --quiet Only show image IDs
可以看到有很多的选项,所以这里就不对每个options进行讲解,只是对命令进行说明。
2.1 基础操作
- 启动docker
systemctl start docker
- 关闭docker
systemctl stop docker
- 重启docker
systemctl restart docker
- 查看docker 运行状态
systemctl status docker
- 查看docker版本
docker version
- 显示docker系统信息
docker info
- 为了防止每次都使用sudo命令,在这里需要执行下列命令添加权限:
sudo groupadd docker
sudo gpasswd -a <YourName> docker # 比如:sudo gpasswd -a james docker
sudo service docker restart
- 也可以直接进入root权限模式
# 进入root的方法:
sudo su #方法1
sudo su root # 方法2
# 退出root
sudo su user # user表示自己的用户名
2.2 镜像操作
命令 | 功能 |
---|---|
docker images | 列出镜像 |
docker search django | 搜索镜像 |
docker search --filter=STARS=9000 mysql | 搜索 STARS >9000的 mysql 镜像 |
docker pull 镜像名 | 拉取镜像版本latest |
docker pull 镜像名:tag | 拉取指定版本镜像 |
docker push 镜像名 | 发布最新版本latest镜像 |
docker pull 镜像名:tag | 发布指定版本镜像 |
docker rmi 镜像名或镜像id | 删除镜像 |
docker rmi -f $(docker images -aq) | 删除全部镜像,-a:全部;-q:显示ID |
docker image rm 镜像名称/镜像ID | 强制删除镜像 |
docker history 镜像名称/镜像ID | 显示一个镜像的历史 |
2.3 容器操作
- 查看docker状态
命令 | 功能 |
---|---|
docker ps -a | 查看所有容器,包括未运行的容器 |
docker ps -l | 列出最近一次启动的container |
docker top Name/ID | 显示一个运行的容器里面的进程信息 |
docker logs | 查看容器日志 |
docker inspect | 获取容器/镜像的元数据 |
- 关于run
命令 | 功能 |
---|---|
docker run image_name echo “hello word” | 创建容器并运行"echo"命令,输出"hello word" |
docker run -i -t image_name /bin/bash | 交互式进入容器中,-i交互式;-t:终端;-d:后台运行 |
docker run image_name apt-get install -y app_name | 在容器中安装新的程序 |
docker run -it -d --name redis001 redis:5.0.5 /bin/bash | –name:取别名 |
docker run -itd --name redis002 -p 8888:6379 redis:5.0.5 /bin/bash | -p 8888:6379将容器内部的 6379端口与docker 宿主机8888 端口进行映射 |
docker exec -it {容器ID} /bin/bash | 进入正在运行的容器 |
docker attach 容器名/容器ID | 进入容器,不建议使用;进入容器正在执行终端,不会启动新的进程 |
- docker容器的启动、停止和删除
命令 | 功能 |
---|---|
docker stop 容器名或容器id | 停止容器 |
docker start 容器名或容器id | 启动一个已经停止的容器 |
docker kill 容器名或容器id | kill一个正在运行的容器 |
docker rm 容器名或容器id | 删除容器 |
docker rm -f $(docker ps -aq) | 删除全部容器 |
- docker保存加载
命令 | 功能 |
---|---|
docker commit 容器名 镜像名 | 将容器保存为镜像 |
docker commit -m=“提交信息” -a=“作者信息” 容器名/容器ID 提交后的镜像名:Tag | 附加信息的保存镜像 |
docker save tomcat -o myimg.tar | 保存镜像 |
docker load -i myimg.tar | 加载镜像 |
- 其他
命令 | 功能 |
---|---|
docker cp 容器ID/名称: 容器内路径 容器外路径 | 从容器内 拷出 |
docker cp 容器外路径 容器ID/名称: 容器内路径 | 从外部 拷贝文件到容器内 |
Ctrl-D或者exit指令 | 退出容器 |
以上是关于ubuntu下Docker的安装卸载以及常用命令介绍的主要内容,如果未能解决你的问题,请参考以下文章