目录
2、docker的发展历史与虚拟机的比较,docker的升级K8S,参考如下:
4、docker下载镜像加速(更新下载源下载网络资源镜像的资源会加快)
5、把用户 添加进docker组,这样每次输入docker命令就可以不用添加sudo
d>运行容器中删除文件,打包新镜像,新镜像内存空间并没有减小
docker深入浅出_分布式架构之巅的博客-CSDN博客_深入浅出docker
容器(docker&k8s)技术简述_老十三笔记的博客-CSDN博客_容器技术
Ubuntu 22.04中安装docker及ROS镜像,以及在docker中运行rviz_HappinessWord的博客-CSDN博客_docker rviz
docker下载太慢怎么办?(更换镜像源)_曾尚仁的博客-CSDN博客
- # 添加docker用户组,一般已存在,不需要执行
-
- sudo groupadd docker
-
- # 将登陆用户加入到docker用户组中
-
- sudo gpasswd -a $USER docker
-
- # 更新用户组
-
- newgrp docker
将当前下载的镜像修改后制作成新的镜像,制作过程如下:
///start//
(1)下载docker hub上的镜像资源,选择最小的系统镜像资源。
(2)进入下载的镜像ubuntu:
(3)在当前镜像中进行修改或者下载所需环境。
a>下载软件前,可以更新镜像源,加快下载速度。
b> 若要使用ping命令,需要安装ping相关的包。若不需要,可不用安装,ping命令并不影响 容器中网络的连接。安装ping的命令如下:
- #apt-get update
- # apt-get install iputils-ping
- # apt-get install net-tools
安装ping结果如下:
c>添加文件file
(4)将上述修改保存为新的镜像。
从当前容器创建一个新的镜像,提交上面修改到本地docker节点,命令为:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
- //重新打开一个命令窗口。
- //下面-a,-m的参数可以省略不写。d31795a49d56 为当前容器ID ,ubuntu:v2为新镜像名称
- $ sudo docker commit -a "username" -m "description" d31795a49d56 ubuntu:v2
-
- //将镜像保持为ubuntu_v2.tar文件,以供在其他电脑中导入使用
- $ sudo docker save -o ubuntu_v2.tar ubuntu:v2
保存新的镜像结果如下:
修改的文件如下:
至此,新镜像文件 ubuntu_v2.tar已制作完成。
导入制作镜像的命令为:$sudo docker load -i ubuntu_v2.tar
导入镜像后,就可以通过镜像进入容器了,命令为:$sudo docker run -it ubuntu:v2
///end//
附加:
- //1、将容器CONTAINER中SRC_PATH路径下内容拷贝到主机DEST_PATH目录下
- docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
- OPTIONS说明:-L :保持源目标中的链接
-
- 将容器ID为96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。96f7f14e99ab可以使用docker ps查看
-
- docker cp 96f7f14e99ab:/www /tmp/
-
-
- //2、将主机SRC_PATH路径下内容拷贝到容器DEST_PATH下
- docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
-
- 将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。
-
- docker cp /www/runoob 96f7f14e99ab:/www/
docker run --gpus all --name 容器名 -d -t 镜像id
具体可参考连接:
在docker容器中使用显卡_旺旺棒棒冰的博客-CSDN博客_docker 显卡
- //挂载方法1
- docker run -it -v /home/Downloads:/home/mount ubuntu64:v1 /bin/bash
- //挂载方法2
- docker run -it -v /home/Downloads:/home/mount ImageID /bin/bash
通过参数-v实现挂载,冒号前为主机目录,冒号后面为容器中目录。 ubuntu64:v1为镜像的repository名和tag名。挂载方法2中ImageID为镜像的IMAGE ID。这些参考可以使用docker iamges命令查看。
有时候需删除镜像中较大的文件,重新打包镜像。但是发现删除的文件内存还存在于新打包的镜像中,这样会导致打包的镜像越来越大,这是因为镜像会记录历史信息。
解决办法:
1、代替从容器中创建镜像的commit命令,使用export命令将当前容器中所有文件打包到tar文件中,这样就不会将记录信息打包到新的文件中,eg如下:
- //将容器IDa404c6c174a2打包到文件newContinaner.tar
- docker export -o newContinaner.tar a404c6c174a2
需要注意的是export打包出的文件跟之前commit打包的文件不一样,如果要跟镜像一样使用需要继续按执行下面步骤。
2、export出的文件,使用import从归档文件中创建镜像导入,eg如下:
- //从镜像归档文件my_ubuntu_v3.tar创建镜像,命名为runoob/ubuntu:v4
- docker import newContinaner.tar runoob/ubuntu:v1
3、这时若使用docker run -it ImageID创建运行的容器会出现错误:
docker: Error response from daemon: No command specified.See 'docker run --help'.
解决命令如下:
- $ docker run -itd runoob/ubuntu:v1 /bin/bash //创建一个后台运行交互的容器
- $ docker ps //查看上一步启动的容器ID
- $ docker run -it containerID //进入容器
到此就跟之前操作一样了,可以使用commit命令打包镜像了。
注:上面操作步骤参考的博文如下:
删除docker容器中内容后打包镜像不变小_docker 删除文件后容器镜像大小不变_一米阳光zw的博客-CSDN博客
4.docker导入导出镜像、容器,及启动容器失败解决方法【详细】_RQ_ghylls的博客-CSDN博客_docker import 无法启动
进入正在运行的Docker容器的4种方式_hiekay的博客-CSDN博客_进入正在运行的容器
关于镜像的其他操作可以参考下面的博文
Docker 封装anaconda环境,生成镜像并打包,纯小白一文读懂(二)_豆蔻二八的博客-CSDN博客_docker打包conda环境
使用Docker制作镜像并推送到镜像仓库_guo_zhen_qian的博客-CSDN博客_docker 推送到仓库
docker 复制命令_喜羊羊love红太狼的博客-CSDN博客_docker 复制
Kubernetes 深入学习(一) —— 入门和集群安装部署 - bojiangzhou - 博客园 (cnblogs.com)
k8s的一些基础命令_大陈子oc的博客-CSDN博客_k8s基础命令