docker使用命令笔记

发布于:2025-03-27 ⋅ 阅读:(30) ⋅ 点赞:(0)

记录docker的一些使用命令

1. 安装docker

遵循官方安装说明即可,windows需要下载docker desktop后在docker终端内执行命令,而ubuntu则使用终端遵循说明安装,本文主要针对具体的使用。

2. 拉取镜像

按照官方提供的名字拉取对应镜像,例如ubuntu镜像:

docker pull ubuntu:18.04

或是nvidia提供的cuda官方镜像:

docker pull nvidia/cuda:12.1.0-cudnn8-devel-ubuntu20.04

3. 镜像与容器

可以简单理解为,镜像类似于操作系统的安装盘,它是静态的,无法被改变的。而容器类似于一台具体的电脑(当然它是虚拟的),它安装好了操作系统,能够被启动,运行,修改和关闭。
你可以基于镜像去创建多个容器,也可以把一个容器关机后保存为一个镜像。当你试图把docker虚拟机保存为单个磁盘文件时,必须基于镜像来导出一个文件,也只能从文件导入镜像,再基于镜像去创建一个容器实例。
如果你想要运行什么程序,执行什么功能,那么必须在一个运行的容器中执行。
镜像包含一个名字和一个版本号,由分号隔开,一个名字的镜像系列中可以有很多个不同版本号的版本构成继承关系。

查看正在运行的容器

docker ps

查看所有的容器

docker ps -a

查看所有的镜像

docker images

删除容器(容器必须已经stop)

docker rm 【容器名】

删除镜像(不能存在依赖于该镜像的容器)

docker rmi 【镜像名】

4. 基于镜像创建容器

基于镜像image1:1.1创建并运行一个容器container1,进入它的bash界面:

docker run --name container1 -it image1:1.1 bash

以下为一些可选的参数:

构造nivdia的cuda运行环境

docker run --name container1 --runtime=nvidia --gpus all -it image1:1.1 bash

将外部实际主机的3000端口与docker内部的8080端口绑定,访问其中一个端口等价于访问另一个端口:

docker run --name container1 -p 3000:8080 -it image1:1.1 bash

将外部实际主机的/main_dir与docker内部的/docker_dir路径绑定,访问其中一个文件夹路径等价于访问另一个路径,文件改动也会完全一致:

docker run --name container1 -v /main_dir:/docker_dir -it image1:1.1 bash

如果需要绑定多个端口和路径,增加多个相同参数即可。

注:共享端口与共享文件夹必须在第一次创建容器时设置完成,一旦容器创建完成后,该参数就不可再进行修改。修改的唯一方法是把当前容器保存为一个新的镜像,再基于该镜像,重新创建一个新的容器的同时配置相应的参数。

4. 操作创建好的容器

启动容器

docker start 【容器名】

关闭容器

docker stop 【容器名】

重启容器

docker restart 【容器名】

进入一个已经启动的容器的bash终端

docker exec -it 【容器名】 bash

容器转化为镜像

docker commit 容器id 新镜像名称:版本号

镜像转化为磁盘文件

docker save -o 压缩文件名称 镜像名称:版本号

从磁盘文件加载镜像

docker load -i xxx.tar

5. docker文件传输

一种方法是配置了绑定文件夹,这样你在主机把文件放入,docker就可以读取,反之亦然(但是要注意添加文件的访问权限)。
另一种方法是直接用命令拷贝文件,例如:

docker cp 本地磁盘路径 docker名:docker内文件路径

6. ubuntu的docker的一些基本环境搭建

下载基础镜像

docker pull ubuntu:18.04

安装基本环境

apt-get update
apt-get install sudo dialog apt-utils vim less screen curl screen systemctl git language-pack-zh-hans build-essential cmake

安装中文编码

locale-gen zh_CN.UTF-8
echo "export LC_ALL=zh_CN.UTF-8">> ~/.bashrc
source ~/.bashrc

配置screen默认启动bash

vi ~/.screenrc

在配置文件中添加:

defshell -bash

保存退出即可。