Docker超详细基础教程,快速入门docker首选(万字长文建议收藏)_docker入门教程

2401_84264096 2024-08-25 17:07:03 阅读 55

$ sudo docker run hello-world

能够看到输出 Hello from Docker! 就OK了!

2.6 设置开机自启动

systemctl start docker

systemctl enable docker

三、docker基础操作

当我们安装好docker后,由于我做深度学习方面的研究,所以我们需要安装相应的深度学习环境,以配置pytorch环境为例,接下来会一步步介绍如何构建一个属于自己的镜像

1.镜像基本操作

1.1 抓取镜像

首先我们进入dockerhub网站选择一个我们需要的镜像。

然后输入:

docker pull pytorch/pytorch

通过此命令可以docker远程仓库拉取镜像到本地。

docker pull [options] NAME[:TAG]

name是拉取镜像的名称;TAG表示是可选的,如果不选表明时latest,如果选择表明是指定版本的。

options是拉去的一些参数,当不加请求地址的时候回去docker的官网拉取镜像。

1.2 查看镜像

docker images

通过此命令可以查看当前存在哪些镜像。

docker images [options] [REPOSITORY[:TAG]]

options是选项,后面是指定镜像的名称。这个用的不多,可能当本地镜像非常多的时候要指定查看某一个镜像。

IMAGE ID 其实是一个64位的字符串,它可以唯一标识我们的镜像,这里只显示了16位,后面的被截掉了

1.3 启动交互式容器

docker run -it -v /home/admin/workplace:/workspaces --name bert_pytorch pytorch/pytorch /bin/bash

docker run -t -i -v 本地目录:虚拟目录 --name 自定义名称 IMAGE_NAME /bin/bash

-i –interactive=true | false,默认是false

-t –tty=true | false,默认是false

–name 给启动的容器自定义名称,方便后续的容器选择操作

启动交互式的容器,就是类似虚拟机、云主机的操作方式,操作完一个命令后仍然可以继续

1.4 删除镜像

docker rmi d77dc4c8ebab

docker rmi 镜像的标识

标识可以是id或者name。

2.容器的操作

2.1 运行容器

简单操作

docker run 镜像的标识|镜像名称[tag]

常用的参数

docker run -d -p  宿主机端口:容器端口 --name 容器名称 镜像的标识|镜像名称[tag]

-d: 代表后台运行容器

-p: 宿主机端口:容器端口: 为了映射当前Linux的端口和容器的端口

–name 容器名称: 指定容器的名称

2.2 查看正在运行的容器

docker ps [OPTIONS]

OPTIONS说明:

-a: 代表查看全部的容器,包括没有运行

-q: 只查看容器的标识

-f: 根据条件过滤显示的内容

–format: 指定返回值的模板文件

-l: 显示最近创建的容器

-n: 列出最近创建的n个容器

–no-trunc: 不截断输出

-s: 显示总的文件大小

2.3 查看容器的日志

docker logs -f 容器id

-f: 可以滚动查看日志的最后几行

2.4 进入到容器内部

docker exec -it 容器id bash

2.5 删除容器(删除容器前,需要先停止容器)

docker stop 容器id

停止指定的容器

docker stop $(docker ps -qa)

停止全部容器

docker rm 镜像id

删除指定容器

docker rm $(docker ps -qa)

删除全部容器

2.6 启动容器

docker start 容器id

3.构建镜像

构建Docker镜像,可以保存对容器的修改,并且再次使用。构建镜像提供了自定义镜像的能力,以软件的形式打包并分发服务及其运行环境。Docker中提供了两种方式来构建镜像:

通过容器构建:docker commit通过Dockerfile:docker build

3.1 使用commit命令构建镜像

docker commit 7843e0556e67 bertpytorch

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

参数:

-a,–author=“”,指定镜像的作者信息

-m,–message=“”,提交信息

-p,–pause=true,commit时是否暂停容器

3.2 使用Dockerfile文件构建镜像

Docker允许我们利用一个类似配置文件的形式来进行构建自定义镜像,在文件中可以指定原始的镜像,自定义镜像的维护人信息,对原始镜像采取的操作以及暴露的端口等信息。比如:

# Sample Dockerfile

FROM ubuntu:16.04

MAINTAINER wgp "Kingdompin@163.com"

RUN apt-get update

RUN apt-get install -y nginx

EXPOSE 80

命令:docker build [OPTIONS] DockerFile_PATH | URL | -

参数:

 –force-rm=false

​ –no-cache=false

​ –pull=false

​ -q,quite=false,构建时不输出信息

​ –rm=true

 -t,tag=“”,指定输出的镜像名称信息

4.镜像迁移

我们制作好的镜像,一般会迁移到其他机器上。Docker提供了几种镜像迁移分享给其他人的方式。推荐镜像迁移应该直接使用Docker Registry,无论是直接使用Docker Hub还是使用内网私有Registry都可以。使用镜像频率不高,镜像数量不多的情况下,我们可以选择以下两种方式。

4.1 上传Docker Hub

首先,需要在Docker Hub上申请注册一个帐号(人机验证时需要科学上网)。然后我们需要创建仓库,指定仓库名称。

在终端中登录你的Docker Hub账户,输入docker login,输入用户名密码即可登录成功。

查看需要上传的镜像,并将选择的镜像打上标签,标签名需和Docker Hub上新建的仓库名称一致,否则上传失败。给镜像打标签的命令如下。

docker tag /[:]

其中existing-image代表本地待上传的镜像名加tag,后面/[:]则是为上传更改的标签名,tag不指定则为latest。

接下来,我们利用push命令直接上传镜像。

docker push /:

我们已经上传成功。由于之前介绍的分层存储系统,我们这里是直接对已有的ubuntu镜像进行上传,只是重新打了标签,所以真正上传的只是变化的部分。

4.2 导出文件互传

Docker 还提供了 docker load 和 docker save 命令,用以将镜像保存为一个tar文件。比如这次我们将bertpytorch:latest这个镜像保存为tar文件。

docker save -o bertpytorch.tar bertpytorch

docker save -o <仓库名称>-.img <仓库名称>:

查看本地磁盘,即可看见名为bertpytorch的tar包。我们可以将其拷贝给其他机器,再利用load命令重新导入。

docker load --input bertpytorch.tar

docker save --input 

四、常用linux操作

1.文件和目录

cd /home 进入 ‘/ home’ 目录’ 

cd … 返回上一级目录 

cd …/… 返回上两级目录 

cd 进入个人的主目录 

cd ~user1 进入个人的主目录 

cd - 返回上次所在的目录

pwd 显示工作路径

mkdir dir1 创建一个叫做 ‘dir1’ 的目录’ 

mkdir dir1 dir2 同时创建两个目录 

mkdir -p /tmp/dir1/dir2 创建一个目录树

rm -f file1 删除一个叫做 ‘file1’ 的文件’ 

rmdir dir1 删除一个叫做 ‘dir1’ 的目录’ 

rm -rf dir1 删除一个叫做 ‘dir1’ 的目录并同时删除其内容 

rm -rf dir1 dir2 同时删除两个目录及它们的内容

cp file1 file2 复制一个文件 

cp dir/* . 复制一个目录下的所有文件到当前工作目录 

cp -a /tmp/dir1 . 复制一个目录到当前工作目录 

cp -a dir1 dir2 复制一个目录 

cp -r dir1 dir2 复制一个目录及子目录

linux涉及到docker的基础命令会不断更新,建议收藏,不时查阅!!!

如果该文章对您有所帮助,麻烦点赞,关注,收藏三连支持下!

各位的支持和认可,是我创作的最大动力!


参考:

Docker超详细基础教程

docker入门(利用docker部署web应用)")

Docker 入门到实战教程(一)介绍Docker介绍Docker")

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。