您现在的位置是:首页 > 行业发展
「Docker自学笔记」Docker常用命令&用法
智慧创新站
2025-05-26【行业发展】291人已围观
简介安装(Ubuntu)使用(常用命令)容器数据卷创建自定义镜像DockerFile容器内自定义镜像源自定义网络保存镜像导入镜像推送镜像到hubDocker常用命令Docker常用命令官方下载安装官方文档Docker仓库搜索安装(Ubuntu)更多内容请查考官方文档依次执行下列代码即可!使用Docker...
安装(Ubuntu)使用(常用命令)容器数据卷创建自定义镜像DockerFile容器内自定义镜像源自定义网络保存镜像导入镜像推送镜像到hubDocker常用命令

Docker常用命令
官方下载安装
官方文档
Docker仓库搜索
安装(Ubuntu)更多内容请查考官方文档
依次执行下列代码即可!
使用Docker仓库进行安装安装apt依赖包,用于通过HTTPS来获取仓库sudoapt-getinstall\apt-transport-https\ca-certificates\curl\gnupg\lsb-release\software-properties-common设置稳定版仓库sudoadd-apt-repository\"deb[arch=amd64]\$(lsb_release-cs)\stable"万能的帮助命令docker命令--help搜索镜像dockersearch镜像拉取镜像dockerpull镜像:版本查看本地所有镜像dockerimagesdockerimages-aq删除镜像dockerrmi-f镜像名/id删除所有镜像添加--rm参数可以实现在退出容器后就删除容器(一般用于测试)参数说明:-i:交互式操作。-t:终端。ubuntu:ubuntu镜像。/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式Shell,因此用的是/bin/bash。要退出终端,直接输入exit这个命令会停止容器!可以使用ctrl+p+q组合键退出,不会退出容器这个命令会停止容器!ctrl+p+q查看当前运行的容器dockerpsdockerps-a启动一个已停止的容器dockerstart容器id重启一个容器dockerrestart容器id当使用stop无法正常停止的时候使用killdockerrun-i-t-d-p6666:80--nameubuntu-testubuntu/bin/bash重新进入容器当前正在运行的命令终端,使用exit会停止容器!dockerexec-i-t容器id/bin/bash删除容器dockerrm-f容器别名/容器id拷贝容器文件到宿主机(复制文件)dockercp容器id/容器id:容器内文件路径要拷贝到的路径查看容器的cpu内存状态dockerstatsdockercommit-a"xiaoqiangclub"-m"thisisatest!"a404c6c174a2mymysql:v1OPTIONS说明:-a:提交镜像的作者;-c:使用Dockerfile指令来创建镜像;-m:提交时的说明文字;-p:在commit时,将容器暂停。
dockerrun-it--rmid/bin/bash添加参数--rm可以实现在退出容器后就删除容器(一般用于测试)
直接输入exit这个命令会停止容器!可以使用ctrl+p+q组合键退出,不会退出容器
我们常用dockerexec-i-t容器id/bin/bash命令进入容器并开启一个新的终端,这个命令进入容器后使用exit不会停止容器
后台启动容器使用dockerrun-i-t-d--nameubuntu-testubuntu/bin/bash
复制文件命令dockercptest-ubuntu:/home//home
dockerrun-m设置容器使用内存最大值
容器数据卷添加-v参数来映射目录,命令dockerrun-it-v主机目录:容器目录镜像/bin/bash
具名挂载:-添加-v参数来映射目录,命令dockerrun-it-v卷名:主机目录:容器目录镜像/bin/bash;使用dockervolumels查看卷
docker容器内路径具名挂载docker/宿主机路径:容器内路径使用ro/rw来设置读写权限:ro:readonly;rw:readwrite;默认为:rw;如果设置为ro:说明这个路径只能通过宿主机改变,容器内无法改变!
dockerinspect获取容器/镜像的元数据(详情)
创建自定义镜像使用Dockercommit命令从容器创建一个新的镜像,下面是他的用法
xiaoqiang@xiaoqiangclub:~/studyArea/dockerStudynbsp;dockercommit--helpUsage:dockercommit[OPTIONS]CONTAINER[REPOSITORY[:TAG]]这个就是我们安装ipython后新创建的镜像my-ubuntulatestbeb3e79259ee10hoursago134MBDockerFile
DockerFile常用命令
FROM作者,姓名+邮箱RUN添加内容(COPY文件,会自动解压)WORKDIR目录挂载EXPOST指定容器启动的时候需要运行的命令,只有最后一个会生效,可被替代!ENTRYPOINT当构建一个被继承时,DockerFile就会运行ONBUILD的指令,是一个触发指令。COPY构建的时候设置环境变量
DockerFile常用命令
容器内自定义镜像源简单示例
xiaoqiang@xiaoqiangclub:~/桌面/docker-study/DockerFilenbsp;vimmyDockFile-ubuntuxiaoqiang@xiaoqiangclub:~/桌面/docker-study/DockerFilenbsp;catmyDockFile-ubuntuFROMubuntuMAINTAINERxiaoqiangclubxiaoqiangclub@/usr/localWORKDIR$MYPATH使用连接构建为一层,最后清理缓存RUNaptupdate\apt-getinstall-yvimnet-tools\rm-rf/var/lib/apt/lists/*EXPOSE80CMDecho$MYPATHCMDECHO"--------"CMD/bin/bash
报错解决方案
文件
deb
使用dockerhistory容器id/容器名:版本可以查看容器的构建过程
容器内更换镜像源后使用aptupdate可能会提示以下错误(NO_PUBKEY缺少公钥):
依次运行公钥和gpg--export--armor公钥|apt-keyadd-即可(非docker容器中运行的话需要添加sudo)
root@eee3e5c095f6:/报错的时候提供的公钥gpg:directory'/root/.gnupg'createdgpg:keybox'/root/.gnupg/'createdgpg:/root/.gnupg/:trustdbcreatedgpg:key3B4FE6ACC0B21F32:publickey"UbuntuArchiveAutomaticSigningKey(2012)ftpmaster@"importedgpg:Totalnumberprocessed:1gpg:imported:1root@eee3e5c095f6:/将一个容器连接到网络create将一个容器从自定义网络断开inspect列出所有网络prune删除一个或多个网络
下面是docker默认的网络
xiaoqiang@xiaoqiangclub:~/studyArea/dockerStudynbsp;dockernetworklsNETWORKIDNAMEDRIVERSCOPEb3c47254c1cebridgebridgelocal205f46f5b907hosthostlocal8d0210334194nonenulllocal
我们可以使用--net网络的方式指定容器使用的网络,如dockerrun-it--nethostmy-ubuntu
有时候在docker中使用Ubuntu镜像无法联网,我们可以尝试使用命令dockerrun-it--nethostubuntu即可解决!(有些情况下重启一下主机就解决了!)
自己创建一个dockernetworkcreate参数
xiaoqiang@xiaoqiangclub:~/studyArea/dockerStudynbsp;dockernetworkcreate--helpUsage:dockernetworkcreate[OPTIONS]NETWORKCreateanetworkOptions:--attachableEnablemanualcontainerattachment--aux-addressmapAuxiliaryIPv4orIPv6addressesusedbyNetworkdriver(defaultmap[])--config-fromstringThenetworkfromwhichtocopytheconfiguration--config-onlyCreateaconfigurationonlynetwork-d,--driverstring创建一个网络,默认:bridge--gatewaystrings网关--ingressCreateswarmrouting-meshnetwork--internalRestrictexternalaccesstothenetwork--ip-rangestringsAllocatecontaineripfromasub-range--ipam-driverstringIPAddressManagementDriver(default"default")--ipam-optmapSetIPAMdriverspecificoptions(defaultmap[])--ipv6EnableIPv6networking--labellistSetmetadataonanetwork-o,--optmapSetdriverspecificoptions(defaultmap[])--scopestringControlthenetwork'sscope--subnetstrings子网掩码
--drive类型
bridge:多由于独立container之间的通信host:直接使用宿主机的网络,端口也使用宿主机的overlay:当有多个docker主机时,跨主机的container通信macvlan:每个container都有一个虚拟的MAC地址none:禁用网络
根据上面的使用说明,我们可以尝试使用命令/16--来创建一个网络(也可以直接简写dockernetworkcreatetest-net):
xiaoqiang@xiaoqiangclub:~/studyArea/dockerStudynbsp;/16--7f4d8f0
现在查看一下docker下的网络dockernetworkls
xiaoqiang@xiaoqiangclub:~/studyArea/dockerStudynbsp;dockernetworklsNETWORKIDNAMEDRIVERSCOPE2087a9b3522dbridgebridgelocal205f46f5b907hosthostlocal856ac8b90e9bmynetbridgelocalifconfigeth0:flags=4163UP,BROADCAST,RUNNING,指定导入的文件,代替STDIN-q,--quiet#精简输出信息
例如,也可以
推送镜像到hubdockerlogindockerlogout登入登出
参考文章
阿里云复制下来的操作指南
1.登录阿里云DockerRegistry
$dockerlogin--username=xiaoqiang****
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
您可以在访问凭证页面修改凭证密码。
2.从Registry中拉取镜像
$/xiaoqiangclub/xiaoqiangclub:[镜像版本号]
3.将镜像推送到Registry
$dockerlogin--username=xiaoqiang****
$dockertag[ImageId]/xiaoqiangclub/xiaoqiangclub:[镜像版本号]
$/xiaoqiangclub/xiaoqiangclub:[镜像版本号]
请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。
4.选择合适的镜像仓库地址
从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。
如果您使用的机器位于VPC网络,请使用作为Registry的域名登录。
5.示例
使用"dockertag"命令重命名镜像,并将它通过专有网络地址推送至Registry。
$dockerimages
REPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZE
/acs/
$/acs/agent:0.7-dfb6816
使用"dockerpush"命令将该镜像推送至远程。
$/acs/agent:0.7-dfb6816
很赞哦!(128)
下一篇:介绍一下双电源自动切换开关型号