开始Docker使用速成之旅吧

    技术2022-07-11  87

    开始Docker使用速成之旅吧

    Docker 速用教程多种方法---找到你心仪的镜像并安装它如何将本地拉取的镜像打包上传到没网的服务器上?开始容器使用之旅吧查看已经安装的镜像找到已经运行的容器进入已有container容器容器里和容器外的如何数据互通(数据映射)删除我们不需要的容器和镜像保存更新对容器的操作容器中使用gpu Reference

    Docker 速用教程

    最近在使用Docker,写个简单易懂的文章,希望能帮到别人,快速上手docker。

    多种方法—找到你心仪的镜像并安装它

    我总结了三种方法 1.在DockerHub网页里搜索,页面里会有docker的详细介绍,可以直接通过命令进行拉取安装。比如下图,使用右下方里的命令docker pull hello-world,就可以把这个镜像拉下来啦,是不是很简单。 2.还可以用docker search + dockerName命令,寻找你需要的镜像。如下图所示。 3.使用你找到项目里的dockerfile, 自己去build一个镜像吧。

    - 使用当前目录的 Dockerfile 创建镜像,镜像名字为mm/detection:v1,命令如下。 ```bash | docker build -t mm/detection:v1 ``` - 使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像。 ```bash | docker build github.com/file/docker-firefox ``` - 也可以通过 -f Dockerfile 文件的位置: ```bash | docker build -f /path/to/Dockerfile ```

    如何将本地拉取的镜像打包上传到没网的服务器上?

    保存镜像 (如果以上步骤完成完美,可以忽略次条及下一条) 有时候会遇到网不好,或者没网的情况,那么直接用命令拉起镜像变得很难。便可以在别的网好的地方,下好镜像,传到需要的地方。用下面的命令,docker save -o 加上要保存成的镜像名称,后面加上镜像名字,就可以把镜像存下来啦。

    | docker save -o ImageFileName.tar ImageName

    载入镜像

    用docker load 命令将刚刚保存下的镜像,进行导入吧。命令如下:

    $ sudo docker load --input ImageFileName.tar

    或者可以用到

    $ sudo docker load < ImageFileName.tar

    开始容器使用之旅吧

    查看已经安装的镜像

    docker images可以查看我们已经安装的Image镜像 | docker images

    使用例子如下:

    在列出信息中,可以看到几个字段信息:

    来自于哪个仓库,比如 bitxiong/tsn

    镜像的标记,比如 latest

    它的 ID 号(唯一)

    创建时间

    镜像大小

    其中镜像的 ID 唯一标识了镜像

    启动Container,开始运行我们的镜像吧

    使用命令docker run 加上镜像名称,可以运行我们的镜像,产生container。命令如下图所示: docker run -t -i imageName /bin/bash

    使用例子如下: 在这里解释一下’-i’ 和’-t’. ‘-t’是加了tag. 这里加了这两个,可以让我们在terminal里交互式的操作container。可以看到容器里的文件,对其进行操作。

    找到已经运行的容器

    使用命令docker ps ,可以看到已经运行的容器,这里CONTAINER ID是唯一的,同一个镜像可以有多个已经运行的容器,用来区别。

    | docker ps

    使用例子如下: docker ps -a 可以看到更详细的运行容器情况。

    | docker ps -a

    进入已有container容器

    进入已经运行的容器吧。这里就用到了CONTAINER ID,可以唯一表示容器,在docker exec -it 后加上CONTAINER_ID 加上/bin/bash,便可以重新进入容器里拉。

    | docker exec -it CONTAINER_ID /bin/bash

    使用例子如下:

    容器里和容器外的如何数据互通(数据映射)

    想要在容器里使用容器外的数据,那么就需要让容器找到容器以为的数据路径。这里用到了docker run -v 这个命令,-v 后面加上<(我们想要放到容器里的)宿主机目录>:<容器目录>,这样宿主机目录就会放到容器目录下了,在交互模式里,就可以在容器目录下看到宿主机目录的文件了,是不是很方便啊,没懂的可以看以下例子:

    比如,我们想把主机里/root/data/picture里的文件在容器里运行,但是容器和主机是隔离的,我们在容器里找到我们想放这些文件的目录,比如是/app/data下吧,我们就可以用上么的命令,把/root/data/picture 的文件都放到/app/data 里拉。命令例子如下:

    docker run -v /root/data/picture:/app/data /bin/bash

    删除我们不需要的容器和镜像

    使用docker rm 加上容器ID便可以删除我们不需要的容器了,当删除不掉的时候,可以加上–force强制删除哦。

    删除container

    docker rm CONTAINER_ID

    强制删除container

    docker rm --force CONTAINER_ID

    保存更新对容器的操作

    当我们对容器里进行更新后,希望保存这些操作到镜像,可以commit操作到原有的镜像或者新的镜像,用如下命令。若想保存更改到原有镜像,在REPOSITORY[:TAG]中可以填写原有镜像。若想保存为新的镜像,可在这里写成心仪的镜像名和Tag。

    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

    容器中使用gpu

    使用如下代码,可以把gpu映射到容器中使用:

    docker run --gpu all imageName

    Reference

    https://www.docker.comhttps://docker-curriculum.com/https://hub.docker.com
    Processed: 0.012, SQL: 9