当前位置: 首页 > news >正文

Docker基本使用

查看本地镜像

查看本地:docker imagesPull镜像:docker pull nginx:latest登录镜像:docker login hub.docker.com -u **** -p ****制作镜像:docker build -t xxxx:v1push:docker push xxx:v1删除镜像:docker rmi #imagesName#

容器操作

运行容器
docker run --name   mynginx-test -it(进入shell) --rm(停止后删除) -p 9080:80 (容器80) test/mynginx:v1
docker run -d  name:v1进入docker容器
docker exec -it mynginx-test bash查看容器
docker ps删除容器
docker rm #ContainerName#
docker rm # ContainerId#

——————————————————————————————————————

实际操作

使用镜像步骤

(1)没有容器的情况下,先pull拉取镜像,通过docker images查看是否拉取到。docker pull  testdocker images(2) 使用任意命令启动容器:docker run --name   test -it(进入shell) --rm(停止后删除) -p 9080:80 (容器80) --privileged(ROOT)  containerName查看容器状态docker ps -adocker run -d -t --name hello-world -p 8762:8762 -v /home/app/hello.jar:/home/app/hello.jar java8 java -jar /home/app/hello.jar --spring.profiles.active=dev-d 表示在后台启动-p 8762:8762 表示将容器的端口 映射成宿主主机的端口,否则8762端口访问不到-v /home/app/hello.jar:/home/app/hello.jar 表示将宿主主机的jar文件,映射到容器中(分号前为宿主主机的路径,分号后为容器中的路径)
--name hello-world表示为该容器取一个全局唯一的名称,这里我取的名称为hello-world(3)使用exec命令进入容器,进行操作。docker exec -it (进入shell)  containerName /bin/bash
例如下:
拉取容器:sudo docker pull gggmt/cuda101_yolov5sudo docker run --name test(自己创建的本地容器名) -it --rm -p 9080:80 my_torch(镜像名)查看容器内容:sudo docker image sudo docker ps -a (容器名)sudo docker ps -al (容器)

此时我们可以观察一下当前的容器(docker ps -al)与之前的镜像(docker images),可以看到容器与镜像同时独立存在,并且可以看到在容器中正在运行的项目(交互shell,即/bin/bash)。

进入容器命令行:sudo docker run -i -t gggmt/cuda101_yolov5:v1 /bin/bash(v1要指定版本号,默认下载latest)

拷贝数据

1、从主机往容器中拷贝
eg:将主机/tmp目录拷贝到容器b的/test目录下。

docker cp /tmp b:/test/

2、将容器中文件拷往主机
eg:将容器b的/test目录拷贝到主机的/tmp目录中。

docker cp  b:/test /tmp/

eg:将主机/tmp目录拷贝到容器b中,目录重命名为test02。

docker cp /tmp b:/test02

原文:https://www.runoob.com/docker/docker-cp-command.html

如何提交自己的镜像

假设我们在容器里安装了新的软件包并且跑通了自己的项目,现在打算把容器提交成镜像分享。

(1)首先查看容器的ID

docker ps -al

这里假设id为:c93dbf2aa0f4

(2)将容器提交到镜像中,同时我们给它指定新的名字

(docker commit [ID] [NEW_name]

(3)提交完成后我们再查看本机存在的镜像

 docker images

(4)可以选择两种方式:
第一种:将镜像上传到阿里云镜像仓库中

https://zhuanlan.zhihu.com/p/31772428

第二种:除了上传云镜像库,我们也可以直接将镜像打包成一个独立文件,拷贝分享给别人使用。

(1)docker images 
(2)docker save -o  test(name).tar  test(name)

参考:

https://zhuanlan.zhihu.com/p/31772428

删除镜像和容器

这里注意的是,要删除镜像的话,必须先删除容器。另外,需要先停止容器,再删除。
删除镜像的最佳做法是:先停止容器,再删除容器,最后删除镜像。
 删除容器的最佳做法是:先停止容器,再删除容器。

删除容器

(1)查看Docker中的容器,例如:test,容器ID为23f(前三个字符),并删除容器docker ps -a(2)删除容器docker rm 23f(3)容器还在运行,不能删除,先停止运行再删除,或直接强制删除停止容器:docker stop 23fdocker ps -a

删除镜像

1、查看Docker要删除的镜像,如目标版本为stable-perl的test,镜像ID(IMAGE ID)为 66f4565。docker images2、使用命令“docker rmi 镜像ID”删除test(stable-perl)的镜像,只取“IMAGE ID”的前3个字符即可。docker rmi 66f如果没有删除容器,会出现错误:意思是镜像(66f)存在使用中的容器(23f),不能强制删除镜像。官方的意思是要先停止容器运行,再进行镜像的删除操作吗?3、查看Docker运行中的容器,如容器 test:stable-perl ,容器ID为 23f。docker ps4、先停止容器(23f),再删除镜像(66f)docker stop 23fdocker rm 23fdocker rmi 66f5、最后检查是否删除docker ps -a

遇到的问题(已经有了容器的相关操作)

如何进入已经退出的容器呢?

docker ps -a 查看<container-name/ID>

启动已停止的现有容器

docker start <container-name/ID>

停止正在运行的容器

docker stop <container-name/ID>

然后登录到容器的交互式shell。

docker exec -it <container-name/ID> bash

参考:

https://blog.csdn.net/u014282578/article/details/127866389?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169138088916800226548821%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=169138088916800226548821&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogtop_positive~default-1-127866389-null-null.268v1control&utm_term=docker%E5%88%A0%E9%99%A4%E9%95%9C%E5%83%8F&spm=1018.2226.3001.4450&ydreferer=aHR0cHM6Ly9zby5jc2RuLm5ldC9zby9zZWFyY2g%2Fc3BtPTEwMDEuMjEwMS4zMDAxLjQ0OTgmcT1kb2NrZXIlRTUlODglQTAlRTklOTklQTQlRTklOTUlOUMlRTUlODMlOEYmdD1ibG9nJnU9#t1

附docker常用命令:

重启docker服务  sudo service docker restart关闭docker服务  docker service docker stop开启docker服务  docker service docker start查看当前运行的容器:docker ps查询存在的容器:docker ps -a删除容器:docker -rm  CONTAINERID 强制删除容器:docker -rm -f  CONTAINERID 不能够删除一个正在运行的容器,会报错。需要先停止容器。查看镜像:docker images删除镜像:docker -rmi  IMAGEID  强制删除镜像:docker -rmi -f  IMAGEID  利用镜像创建容器:docker run --name centos -itd centos:latest 
进入后台运行的容器:docker exec -it containname /bin/bash启动容器:docker start containername停止容器:docker stop containername停止所有的container,这样才能够删除其中的images: docker stop $(docker ps -a -q)如果想要删除所有container的话再加一个指令: docker rm $(docker ps -a -q)注:-a标志列出所有容器,-q标志只列出容器的ID,然后传递给rm命令删除全部image的:  docker rmi $(docker images -q)重命名一个容器:docker rename old_name new_name要获取所有容器名称及其IP地址:
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

附:https://blog.csdn.net/ithaibiantingsong/article/details/81353168

在这里插入图片描述
!在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/114548.html

相关文章:

  • PHP生成随机数
  • MongoDB:Unrecognized option: storage
  • Java基础九 - 异常
  • [国产MCU]-BL602开发实例-UART数据发送与接收
  • mac安装open3d时候出现错误
  • 打造本地户外装备小程序商城教程大揭秘
  • 在外SSH远程连接Ubuntu系统
  • GOTS标准速递---7.0 版将于2024年3月1日起全面生效
  • Ansible的安装和配置
  • 口-肠-脑轴与精神健康的关系
  • Dubbo是干嘛的,Dubbo原理和机制,Dubbo的核心组件
  • 自动zksync刷账户交互(附代码)
  • 荐读 | 《揭秘云计算与大数据》
  • RISC-V基础之内存分布与映射
  • 【Unity3D应用案例系列】Unity3D中实现文字转语音的工具开发
  • STM32入门——定时器
  • 企业工商信息:知识产权出质
  • batch_softmax_loss
  • 刘汉清:从生活到画布,宠物成为灵感源泉
  • 【LeetCode】240.搜索二维矩阵Ⅱ
  • SED正则表达式中[方括号]的特殊处理
  • Android 音频开发
  • Java8新特性,Lambda,Stream流
  • 模型训练之train.py代码解析
  • linux 复习
  • C语言刷题------(2)
  • JVM 之 OopMap 和 RememberedSet
  • Original error: gsmCall method is only available for emulators
  • React Native从文本内容尾部截取显示省略号
  • 机器学习笔记之优化算法(十一)凸函数铺垫:梯度与方向导数