docker中的问题

docker从0开始到打包

服务器下载并启动docker(yum update)

yum -y install docker

systemctl start docker

拉取最新版的 Ubuntu 镜像

docker pull ubuntu

使用docker images查看已经拉取的镜像

根据镜像启动容器

docker run -itd --name ubuntu-test image_id /bin/bash
#docker run -itd -v 服务器文件路径:容器内路径 --name ubuntu-test image_id /bin/bash(主机卷的映射)
  • -i: 交互式操作。
  • -t: 终端。
  • -d:后台运行,退出容器后容器不停止
  • -v: --volume将指定的⽂件夹映射到容器的某个⽬录中
  • ubuntu: ubuntu 镜像。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

进入容器

​ 使用docker ps 查看容器id docker ps -a 查看所有容器(包括已经停止的容器)

根据docker id 进入容器
docker exec -it bd391f79478e /bin/bash

进入容器后进行代码操作和各种文件操作,ubuntu容器可能需要先apt update一下

把已经有操作痕迹的docker容器进行导出

#把docker容器进行导出  export也可以导出正在运行的容器
docker export docker容器id  > docker_name.tar
#export 把容器进行导出的tar文件加载为镜像方法
docker import docker_name.tar  docker_name:docker.tag
###现在一般都不提倡用这种方法  基本上都是先docker commit新镜像然后save出去

把docker镜像进行保存

#把改动过的容器进行保存为tar,如果容器没有进行改动 就直接用之前的镜像就可以了
docker commit container_id new_image_id:new_tag

#把docker镜像进行导出
docker save -o docker_image.tar  docker_image_name:tag

#save  把镜像进行导出的tar文件加载为镜像方法
docker load -i docker_image.tar 
把导出的docker容器 docker_name.tar转移到另一台服务器

在服务器把 docker_name.tar 进行加载到docker镜像

#docker镜像重命名
docker tag image_id new_image_name:new_tag

然后根据镜像启动容器、进入容器 和之前的操作一样

docker 删除镜像

docker rmi docker_image_id (必须是没有容器在使用的镜像才可删除)

docker 删除容器

docker rm docker_id

docker 进行容器内外的文件拷贝

将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。

docker cp /www/runoob 96f7f14e99ab:/www/

将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。

docker cp /www/runoob 96f7f14e99ab:/www

将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。

docker cp  96f7f14e99ab:/www /tmp/

ncidia-docker启动容器是出现问题

在这里插入图片描述

sudo ln -s /usr/bin/nvidia-container-toolkit /usr/bin/nvidia-container-runtime-hook

docker中遇见的问题
error

docker: Error response from daemon: driver failed programming external connectivity on endpoint cmss-sentiment-develop (9f623bdf32779a7497c3987dc719f6105ddf45ceb1a28dc4b2cd1ffdf85fa738):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8018 -j DNAT --to-destination 172.17.0.2:80 ! -i docker0: iptables: No chain/target/match by that name.

方案

重启docker
service docker restart
或
systemctl restart  docker
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值