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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。