勤加练习,记住
本文参考:大佬的文章
Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案,使用Docker,开发和测试可以快速部署和迁移环境,并且能保证环境的一致性,从而提升软件的开发和维护效率。
与虚拟机相比,docker有优点也有缺点,具体可以看下图:
特性 | 容器 | 虚拟机 |
---|---|---|
启动 | 秒级 | 分钟级 |
硬盘使用 | 一般为MB | 一般为GB |
性能 | 接近原生 | 弱于 |
系统支持量 | 单片机支持上千个容器 | 一般是几个 |
docker安装
linux换源
https://blog.csdn.net/qq_40520596/article/details/110194439
自动安装:
curl -sSL https://get.daocloud.io/docker | sh
手动安装:
1.删除旧版本
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine \docker-ceyum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine \ docker-ceyum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine \ docker-ce
2.设置源仓库
第二步,设置仓库。新主机上首次安装Docker Engine-Community之前,需要设置Docker仓库。此后可从仓库安装和更新Docker。在设置仓库之前,需先按照所需的软件包。yum-utils提供了yum-config-manager,并且device mapper存储驱动程序需要device-mapper-persistent-data和lvm2。$ sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2执行上述命令,安装完毕即可进行仓库的设置。使用官方源地址设置命令如下:sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo通常,官方的源地址比较慢,可将上述的源地址替换为国内比较快的地址:阿里云:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo清华大学源:https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo仓库设置完毕,即可进行Docker的安装。第二步,设置仓库。新主机上首次安装Docker Engine-Community之前,需要设置Docker仓库。此后可从仓库安装和更新Docker。 在设置仓库之前,需先按照所需的软件包。yum-utils提供了yum-config-manager,并且device mapper存储驱动程序需要device-mapper-persistent-data和lvm2。 $ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 执行上述命令,安装完毕即可进行仓库的设置。使用官方源地址设置命令如下: sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo 通常,官方的源地址比较慢,可将上述的源地址替换为国内比较快的地址: 阿里云:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 清华大学源:https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo 仓库设置完毕,即可进行Docker的安装。第二步,设置仓库。新主机上首次安装Docker Engine-Community之前,需要设置Docker仓库。此后可从仓库安装和更新Docker。 在设置仓库之前,需先按照所需的软件包。yum-utils提供了yum-config-manager,并且device mapper存储驱动程序需要device-mapper-persistent-data和lvm2。 $ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 执行上述命令,安装完毕即可进行仓库的设置。使用官方源地址设置命令如下: sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo 通常,官方的源地址比较慢,可将上述的源地址替换为国内比较快的地址: 阿里云:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 清华大学源:https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo 仓库设置完毕,即可进行Docker的安装。
3.安装
sudo yum install -y docker-ce docker-ce-cli containerd.io
yum install -y docker-ce
安装参考:https://juejin.cn/post/7125218891642437640
docker
docker的整个生命周期有三部分组成:镜像(image)+容器(container)+仓库(repository);
容器是由镜像实例化而来,这和我们学习的面向对象的概念十分相似,我们可以把镜像看作类,把容器看作类实例化后的对象.
也可以说镜像是文件, 容器是进程。 容器是基于镜像创建的, 即容器中的进程依赖于镜像中的文件, 这里的文件包括进程运行所需要的可执行文件, 依赖软件, 库文件, 配置文件等等…
![图片[1],Docker命令笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/03/20240303030721219.png?imageView2/0/format/webp/q/75)
![图片[2],Docker命令笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/03/20240303020243133.png?imageView2/0/format/webp/q/75)
docker进程相关命令:
systemctl start docker #启动docker服务systemctl stop docker #停止docker服务systemctl restart docker#重启docker服务systemctl status docker #查看docker服务状态systemctl enalbe docker #设置开机自启动服务systemctl disable dockers #关闭开机自启动systemctl start docker #启动docker服务 systemctl stop docker #停止docker服务 systemctl restart docker#重启docker服务 systemctl status docker #查看docker服务状态 systemctl enalbe docker #设置开机自启动服务 systemctl disable dockers #关闭开机自启动systemctl start docker #启动docker服务 systemctl stop docker #停止docker服务 systemctl restart docker#重启docker服务 systemctl status docker #查看docker服务状态 systemctl enalbe docker #设置开机自启动服务 systemctl disable dockers #关闭开机自启动
docker容器管理命令:
docker run -i -t ubuntu:17.10 /bin/bash
参数说明:
-i: 保持容器运行.通常于-t同时使用.加入it这两个参数后,容器创建后自动进入容器中,退出后,容器自动关闭
-t: 为容器从新分配一个伪终端,通常与-i同时使用.
-d: 以守护(后台)模式运行容器,创建一个容器在后台运行,需要使用docker exec进入容器.退出后,容器不会关闭
-it: 创建的容器一般称伪交互式容器
–name: 为创建的容器命名
docker ps #查看正在运行的容器docker ps -s -a #查看当前所有容器docker stop 容器名称 #停止容器docker restart 容器名称 #重启容器docker kill 容器名称 #杀死容器docker rm -f 容器名称或容器id #删除已经停止的容器ps:1.docker kill和docker stop的区别与联系相同点:两者都是停掉容器,并把容器状态指定到stopped。 不同点:被kill杀死容器,进入stopped状态被重新start后,会开启新的进程号;被stop停掉的容器,再次被重新start后,进程号不变,还是原来的2.停止所有容器运行:docker stop $(docker ps -a -q)删除所有停止运行的容器:docker rm $(docker ps -a -q) # $()返回括号中执行的任何结果3.这部分内容有更细的参考:https://www.cnblogs.com/davis12/p/14456227.htmlhttps://twle.cn/l/yufei/docker/docker-basic-run.htmlhttps://www.jb51.net/article/277278.htmdocker ps #查看正在运行的容器 docker ps -s -a #查看当前所有容器 docker stop 容器名称 #停止容器 docker restart 容器名称 #重启容器 docker kill 容器名称 #杀死容器 docker rm -f 容器名称或容器id #删除已经停止的容器 ps: 1.docker kill和docker stop的区别与联系 相同点:两者都是停掉容器,并把容器状态指定到stopped。 不同点:被kill杀死容器,进入stopped状态被重新start后,会开启新的进程号;被stop停掉的容器,再次被重新start后,进程号不变,还是原来的 2.停止所有容器运行:docker stop $(docker ps -a -q) 删除所有停止运行的容器:docker rm $(docker ps -a -q) # $()返回括号中执行的任何结果 3.这部分内容有更细的参考: https://www.cnblogs.com/davis12/p/14456227.html https://twle.cn/l/yufei/docker/docker-basic-run.html https://www.jb51.net/article/277278.htmdocker ps #查看正在运行的容器 docker ps -s -a #查看当前所有容器 docker stop 容器名称 #停止容器 docker restart 容器名称 #重启容器 docker kill 容器名称 #杀死容器 docker rm -f 容器名称或容器id #删除已经停止的容器 ps: 1.docker kill和docker stop的区别与联系 相同点:两者都是停掉容器,并把容器状态指定到stopped。 不同点:被kill杀死容器,进入stopped状态被重新start后,会开启新的进程号;被stop停掉的容器,再次被重新start后,进程号不变,还是原来的 2.停止所有容器运行:docker stop $(docker ps -a -q) 删除所有停止运行的容器:docker rm $(docker ps -a -q) # $()返回括号中执行的任何结果 3.这部分内容有更细的参考: https://www.cnblogs.com/davis12/p/14456227.html https://twle.cn/l/yufei/docker/docker-basic-run.html https://www.jb51.net/article/277278.htm
docker镜像管理命令
docker images #查看当前机器的所有镜像docker images -q # 查看当前所有镜像的iddocker search 镜像名称 # 搜索镜像,网络中查找需要的镜像docker pull 镜像名称 #从Docker仓库拉取镜像,名称:版本号docker push 镜像名称 #推送镜像docker rmi 镜像名称/镜像id #删除本地机器的镜像docker rmi docker images -q #删除所有本地镜像docker tag 镜像名称:tag 镜像名称:tag #为一个镜像打tagdocker save {image_name}.tar #解压一个镜像tar包docker images #查看当前机器的所有镜像 docker images -q # 查看当前所有镜像的id docker search 镜像名称 # 搜索镜像,网络中查找需要的镜像 docker pull 镜像名称 #从Docker仓库拉取镜像,名称:版本号 docker push 镜像名称 #推送镜像 docker rmi 镜像名称/镜像id #删除本地机器的镜像 docker rmi docker images -q #删除所有本地镜像 docker tag 镜像名称:tag 镜像名称:tag #为一个镜像打tag docker save {image_name}.tar #解压一个镜像tar包docker images #查看当前机器的所有镜像 docker images -q # 查看当前所有镜像的id docker search 镜像名称 # 搜索镜像,网络中查找需要的镜像 docker pull 镜像名称 #从Docker仓库拉取镜像,名称:版本号 docker push 镜像名称 #推送镜像 docker rmi 镜像名称/镜像id #删除本地机器的镜像 docker rmi docker images -q #删除所有本地镜像 docker tag 镜像名称:tag 镜像名称:tag #为一个镜像打tag docker save {image_name}.tar #解压一个镜像tar包
docker 查看日志信息
docker logs -f 容器名称 #查看容器日志docker info #查看docker服务的信息docker inspect 容器名称 #获取镜像的元信息,详细信息docker logs -f 容器名称 #查看容器日志 docker info #查看docker服务的信息 docker inspect 容器名称 #获取镜像的元信息,详细信息docker logs -f 容器名称 #查看容器日志 docker info #查看docker服务的信息 docker inspect 容器名称 #获取镜像的元信息,详细信息
与容器交互的命令:
进入正在运行的容器
docker exec -it 容器ID或者容器名 /bin/bash
`exec的意思是在容器中运行一个命令. /bin/bash是固有的写法,作用是因为docker后台必须运行一个进程,否则容器就会退出,在这里表示启动容器后自动bash
退出容器
exit #退出也关闭容器;
Ctrl+p+Q #退出不关闭容器
创建启动容器时,使用-v参数设置数据卷
docker run … -v 宿主机目录或文件
数据卷是宿主机的一个目录或文件
目录必须是绝对路径
如果目录不存在,会自动创建
可以挂载多个数据卷
拷贝文件
docker cp 主机文件路径 容器ID或容器名:容器路径 #宿主机文件拷贝到容器中
docker cp 容器ID或容名:容器路径 主机文件路径 #容器文件考本到宿主机中
作业
![图片[3],Docker命令笔记,网络安全爱好者中心-神域博客网](https://img.godyu.com/2024/03/20240303031801388.png?imageView2/0/format/webp/q/75)
- 最新
- 最热
只看作者