CherieLi Student

docker 学习

2022-06-08
CherieLi

docker ps -a

执行镜像:docker run -it [image id] bash

执行容器:docker exec -it [容器id] bash

启动容器:docker start [容器id]

检查docker引擎:service docker status

重新加载配置文件:systemctl daemon-reload

重启docker: service docker restart

查看配置信息:docker inspect [容器id]

-t的作用是创建一个伪终端, -i是让该容器的标准输入保持打开。这样就可以进入到容器的交互模式。-i -t 一起使用才可以看到我们熟悉的Linux命令提示符。只有 -i 由于没有分配伪终端,界面没有我们熟悉的Linux提示符,但命令结果仍然可以返回。

后面的/bin/bash表示载入容器后运行bash ,docker中必须要保持一个进程的运行,不然容器启动后就会马上kill itself,/bin/bash 表示启动容器后启动bash。

docker exec -it –privileged 9ce3982ba7c5 bash

以root权限进入docker容器

docker exec -it -u root 9ce3982ba7c5 /bin/bash

以root权限进入docker容器

docker run -it –device=/dev/fuse:/dev/fuse –privileged 3171e55a9515 bash

将fuse设备添加到镜像

使用该参数,container内的root拥有真正的root权限。 否则,container内的root只是外部的一个普通用户权限。

privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。 甚至允许你在docker容器中启动docker容器。

docker run –name tomcat –cpus 0.1 -m 512M -p 8080:8080 -itd feisky/tomcat:8
通过 -m 512M 选项,给容器设置了 512M 的内存限制。
用 –cpus 0.1 ,为容器设置了 0.1 个 CPU 的限制,也就是 10% 的 CPU。

拷贝文件—计算物理机到容器

docker cp ~/lzy.log a365b0626781:/home/

拷贝文件—容器到计算物理机

docker cp a365b0626781:/home/lzy.log /root/lzy2.log

docker images

docker ps -a

重启docker:systemctl daemon-reload && systemctl restart docker

停止所有容器

docker stop $(docker ps -a -q)

删除所有容器

docker rm $(docker ps -a -q)

删除单个容器

docker rm

删除全部镜像

docker rmi $(docker images -q)

删除单个镜像

docker rmi

强制删除全部镜像

docker rmi -f $(docker images -q)

Docker 从容器中拷贝文件到宿主机中

docker cp 容器id:容器内文件路径 目标路径

#示例

docker cp 6741xxxxxxxx:/xxxx/xxx/xxx/xxxx/common.log /home/log/yyy.log

添加设备

docker inspect [container id]

查看容器信息找到容器完整id

docker-tools 给容器添加设备

docker-tools add-device [容器完整id]

pull镜像

docker pull [仓库地址]

push镜像

用户制作了自己的镜像后,希望将它上传至仓库

docker export命令导出容器

docker save命令保存镜像

目前存储系统的接口已经有aufs, btrfs, devicemapper, vfs,overlay,zfs这6种具体实现。

docker

查看当前使用的存储驱动:docker info

//停止运行中的docker引擎

systemctl stop docker

//启动docker引擎

systemctl start docker

//对原有数据Docker联合文件数据进行备份

cp -au /var/lib/docker /var/lib/docker.bk

创建一个名为our-volume的卷,命令如下:

docker volume create our-volume

检查卷的详细信息

docker volume ls

移除数据卷

docker volume remove our-volume

systemctl show –property=Environment docker

查看docker容器日志

通过docker logs命令可以查看容器的日志。

Docker修改空间大小

https://blog.csdn.net/chengxuyuanyonghu/article/details/76560166

docker容器内执行命令不自动换行

docker exec -it -e LINES=$(tput lines) -e COLUMNS=$(tput cols) 容器ID bash

常见问题

1.Is the docker daemon running?

 service docker start
  1. docker.service启动失败:Unit not found的原因及解决办法
    https://blog.csdn.net/u013392078/article/details/103800411

    A.卸载docker,再重新安装,即可出现docker.socket。
    B.创建docker.socket文件,然后systemctl daemon-reload,最后systemctl start docker.service,即可启动成功。

2.No space left on device
https://blog.csdn.net/yilvqingtai/article/details/122934209?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-122934209-blog-111244328.pc_relevant_3mothn_strategy_recovery&spm=1001.2101.3001.4242.1&utm_relevant_index=3

https://www.cnblogs.com/54chensongxia/p/15138314.html

A.df -h或 du -sh * |G 找到用量最大的空间[maxSpace] 和可用的最大空间[avaliableSpace];
B.docker info |grep Root 找到docker的root目录[docker-root];
C.service docker stop 停docker服务;
D.mv [docker-root] [avaliableSpace];
E.构建软链接 ln -s [avaliableSpace] [docker-root];
F.service docker restart;


上一篇 ping

下一篇 vim 学习

Comments

Content