docker

参考教程:菜鸟教程

彻底卸载

彻底卸载docker_docker卸载-CSDN博客

之前安装过docker,但是无法执行helloworld程序

安装docker出现很多问题

晚上搜了很多都没有解决,最后选择直接重装

docker尝试直接使用官方教程止步在了docker代理配置

出现了

https://blog.csdn.net/Cai_deLong/article/details/115255735参考

我之前有修改过文件传输上限,但是这次还是出现了问题,文章中配置git最低速度和最低速度时间,这里是因为超过的git的最低速度和最低速度时间,所以直接退出来了

1 引言

docker的主要用于后端工程师还有运维工程师

用途:

  • Web 应用的自动化打包和发布。
  • 自动化测试和持续集成、发布。
  • 在服务型环境中部署和调整数据库或其他的后台应用。
  • 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

简单来说就是将应用程序与本机架构隔离开,能够避免因为环境问题出现例如编译不通过之类的问题

优点:

1、快速,一致地交付您的应用程序

Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。

2、响应式部署和扩展

Docker 的可移植性和轻量级的特性,还可以使您轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展或拆除应用程序和服务。

3、在同一硬件上运行更多工作负载

Docker 轻巧快速。它为基于虚拟机管理程序的虚拟机提供了可行、经济、高效的替代方案,因此您可以利用更多的计算能力来实现业务目标。Docker 非常适合于高密度环境以及中小型部署,而您可以用更少的资源做更多的事情。

2 架构

docker由三部分组成

  • 镜像(image)
  • 容器
  • 仓库

容器和镜像的关系就像面向对象编程中的类和实例,镜像是类,而容器是实例

3.常用指令

列出所有容器ID

1
docker ps -aq

查看所有运行或者不运行容器

1
docker ps -a

停止所有的container(容器),这样才能够删除其中的images:

1
docker stop $(docker ps -a -q) 或者 docker stop $(docker ps -aq) 

如果想要删除所有container(容器)的话再加一个指令:

1
docker rm $(docker ps -a -q) 或者 docker rm $(docker ps -aq)

查看当前有些什么images

1
docker images

删除images(镜像),通过image的id来指定删除谁

1
docker rmi <image id>

想要删除untagged images,也就是那些id为的image的话可以用

1
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

要删除全部image(镜像)的话

1
docker rmi $(docker images -q)

强制删除全部image的话

1
docker rmi -f $(docker images -q)

从容器到宿主机复制

1
2
docker cp tomcat:/webapps/js/text.js /home/admin
docker cp 容器名: 容器路径 宿主机路径

从宿主机到容器复制

1
2
docker cp /home/admin/text.js tomcat:/webapps/js
docker cp 宿主路径中文件 容器名 容器路径

删除所有停止的容器

1
docker container prune

删除所有不使用的镜像

1
docker image prune --force --all或者docker image prune -f -a

停止、启动、杀死、重启一个容器

1
2
3
4
docker stop Name或者ID  
docker start Name或者ID
docker kill Name或者ID
docker restart name或者ID

docker进入容器,查看配置文件

1
2
3
4
5
docker exec :在运行的容器中执行命令
-d :分离模式: 在后台运行
-i :即使没有附加也保持STDIN(标准输入) 打开,以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
docker exec -it f94d2c317477 /bin/bash

出现root@f94d2c317477:/usr/share/elasticsearch/config# vi elasticsearch.yml

bash: vi: command not found

1
apt-get update && apt-get install vim -y

修改配置、退出容器

1
2
3
4
1、如果要正常退出不关闭容器,请按Ctrl+P+Q进行退出容器
2、如果使用exit退出,那么在退出之后会关闭容器,可以使用下面的流程进行恢复
使用docker restart命令重启容器
使用docker attach命令进入容器

出现无法可视化

举例创建一个humble-full

1
2
3
docker pull osrf/ros:humble-desktop-full

docker run -it osrf/ros:humble-desktop-full

切记在创建容器的时候要注意添加可视化选项

1
docker run --env="DISPLAY" --net=host --volume="$HOME/.Xauthority:/root/.Xauthority:rw"  --env="QT_X11_NO_MITSHM=1"  -v /tmp/.X11-unix:/tmp/.X11-unix:ro -it --name visual_use -v /home:/out_home  osrf/ros:humble-desktop-full /bin/bash

卸载ros2

1
2
3
sudo apt-get purge ros-*
sudo apt-get autoremove

4.docker镜像加速器

镜像加速器 · Docker – 从入门到实践

这是最开始的写法,但是出现了镜像下载不下来的情况

kvm

ubuntu20.04使用kvm搭建虚拟机+bridge网桥,亲测有效_ubuntu kvm bridge-CSDN博客

深入浅出KVM(一) 丨 简介&安装

ifconfig也可以直接看出来

下面的命令是查看当前网卡名称

1
sudo cat /proc/net/dev | awk '{i++; if(i>3){print $1}}' | sed 's/^[\t]*//g' | sed 's/[:]*$//g'

查看当前dns

systemd-resolve –status

resolvectl status

查看网关

1
route -n

查看nameserver

1
2
cat /etc/resolv.conf