在Linux系统上安装、卸载、使用和测试Docker的详细指南
Docker是一种开源容器化技术,它允许开发者轻松打包、分发和运行应用。本文将详细介绍如何在Linux系统上安装Docker、卸载Docker以及如何测试Docker安装是否成功。
一、 安装Docker
在Linux上安装Docker主要涉及一系列命令行操作。以下以Ubuntu为例,但大多数基于Debian的系统应该是类似的。
步骤1:更新软件包索引
首先,打开你的终端并更新你的软件包列表以确保访问到最新的软件版本。
sudo apt-get update
步骤2:安装所需的依赖包
安装几个允许apt
通过HTTPS使用仓库的包。
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
步骤3:添加Docker的官方GPG密钥
这一步确保你下载的软件包是官方发布的。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
步骤4:添加Docker官方APT仓库
向系统的软件源列表中添加Docker仓库。
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
步骤5:再次更新软件包索引
添加了新的仓库后,需要再次更新软件包列表。
sudo apt-get update
步骤6:安装Docker CE(社区版)
现在,你可以安装Docker CE了。
sudo apt-get install docker-ce
步骤7:将用户添加到Docker组(可选)
默认情况下,运行Docker命令需要管理员权限。为了避免每次使用sudo
,可以将你的用户添加到docker
组中。
sudo usermod -aG docker ${USER}
su - ${USER}
执行此命令后,你需要重启你的系统以使这个变更生效。
确认Docker安装成功:
docker --version
步骤8:测试使用容器
在你可以开始使用Docker了。首先,试着运行一个简单的hello-world容器:
docker run hello-world
步骤9:使用Docker Compose(可选)
Docker Compose可以让你使用YAML文件来定义和运行多容器的应用。首先,安装Docker Compose:
Linux系统
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
验证安装:
docker-compose --version
步骤10:安装NVIDIA Docker支持
NVIDIA Docker允许Docker容器访问宿主机的NVIDIA GPU,从而实现GPU加速。
对于较新版本的Docker(例如19.03及以上),应使用nvidia-docker2
包和nvidia-container-toolkit
。
a. 添加NVIDIA Docker仓库
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
b. 安装nvidia-docker2
和重启Docker服务
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
c. 使用NVIDIA容器运行时
在Docker 19.03及更高版本中,你可以直接使用--gpus
标志来启用NVIDIA GPU支持,而不需要指定--runtime=nvidia
。
docker run --privileged=true --gpus all --restart=always --ipc=host -d --shm-size=4g -p 10022:22 -p 1935:1936 --name mf_pytorch_1 8aa6ed87aac8 /sbin/init
二、 离线安装Docker
步骤一:官网下载 docker 安装包
wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.6.tgz
步骤二:解压安装包;
tar -zxvf docker-24.0.6.tgz
步骤三:将解压之后的docker文件移到 /usr/bin目录下;
sudo cp docker/* /usr/bin/
步骤四:将docker注册成系统服务;
vim /etc/systemd/system/docker.service
然后在文件中添加以下内容,退出并保存。
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
步骤五:给文件增加可执行权限
chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
步骤六:设置开机自启动
systemctl enable docker.service
步骤七 :Docker daemon 配置代理
vim /etc/docker/daemon.json
添加如下内容:
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://kfwkfulq.mirror.aliyuncs.com"
]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
步骤八 :启动docker
systemctl start docker
步骤九:测试docker是否启动
docker run hello-world
三、卸载Docker
如果你需要卸载Docker,可以按照以下步骤进行:
步骤1:卸载Docker CE
sudo apt-get purge docker-ce
步骤2:删除资源
这一步将删除所有Docker的镜像、容器、配置文件和网络。
sudo rm -rf /var/lib/docker
四、docker日常使用命令-Docker基础
镜像
1. 查找镜像
从Docker Hub或其他Docker注册中心搜索镜像。
docker search <镜像名>
2. 拉取镜像
从Docker Hub或其他Docker注册中心下载(拉取)镜像到本地。
docker pull <镜像名>:<标签>
如果不指定标签,默认为latest
。
3. 查看本地镜像
列出本地所有的Docker镜像。
docker images
4. 创建镜像
有多种方法可以创建Docker镜像,最常见的是使用Dockerfile。
- 通过Dockerfile构建镜像
docker build -t <镜像名>:<标签> <Dockerfile路径>
- 基于容器创建镜像
先对容器进行修改,然后通过容器创建新的镜像。
docker commit <容器ID> <镜像名>:<标签>
5. 删除镜像
从本地删除一个或多个镜像。
docker rmi <镜像ID或镜像名>:<标签>
6. 导出和导入镜像
- 导出镜像到文件
docker save -o <文件名.tar> <镜像名>:<标签>
- 从文件导入镜像
docker load -i <文件名.tar>
7. 推送镜像到仓库
将本地镜像推送到Docker Hub或其他Docker注册中心。
docker push <仓库名>/<镜像名>:<标签>
在执行推送操作之前,需要登录到Docker注册中心。
docker login
8. 标记镜像
为镜像添加新的标签。
docker tag <原镜像名>:<原标签> <新仓库名>/<新镜像名>:<新标签>
容器
1. 运行容器
从镜像启动一个新的容器。如果本地没有指定的镜像,Docker会尝试从远程仓库拉取该镜像。
docker run [选项] <镜像名>:<标签> [命令] [参数]
常用选项包括:
-d
:后台运行容器。-p
:端口映射,格式为<宿主机端口>:<容器端口>
。-v
:挂载卷,格式为<宿主机目录>:<容器目录>
。--name
:为容器指定一个名称。-it
:以交互模式运行容器,并分配一个伪终端。
2. 查看容器
- 查看正在运行的容器
docker ps
- 查看所有容器(包括未运行的)
docker ps -a
3. 停止容器
停止一个或多个正在运行的容器。
docker stop <容器ID或名称>
4. 启动容器
启动一个或多个已停止的容器。
docker start <容器ID或名称>
5. 重启容器
重启一个或多个容器。
docker restart <容器ID或名称>
6. 删除容器
删除一个或多个已停止的容器。
docker rm <容器ID或名称>
7. 进入容器
- 使用
docker exec
命令
在运行中的容器内执行命令。常用于进入容器内部进行操作。
docker exec -it <容器ID或名称> /bin/bash
8. 查看容器日志
查看容器的输出日志。
docker logs <容器ID或名称>
9. 容器资源使用情况
查看一个或多个容器的资源使用情况,如CPU、内存等。
docker stats <容器ID或名称>
10. 复制文件
- 从容器中复制文件到宿主机
docker cp <容器ID或名称>:<容器内路径> <宿主机路径>
- 从宿主机复制文件到容器中
docker cp <宿主机路径> <容器ID或名称>:<容器内路径>