勤加练习,记住
本文参考:大佬的文章
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-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的安装。
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);
容器是由镜像实例化而来,这和我们学习的面向对象的概念十分相似,我们可以把镜像看作类,把容器看作类实例化后的对象.
也可以说镜像是文件, 容器是进程。 容器是基于镜像创建的, 即容器中的进程依赖于镜像中的文件, 这里的文件包括进程运行所需要的可执行文件, 依赖软件, 库文件, 配置文件等等…
docker进程相关命令:
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.html
https://twle.cn/l/yufei/docker/docker-basic-run.html
https://www.jb51.net/article/277278.htm
docker镜像管理命令
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 exec -it 容器ID或者容器名 /bin/bash
`exec的意思是在容器中运行一个命令. /bin/bash是固有的写法,作用是因为docker后台必须运行一个进程,否则容器就会退出,在这里表示启动容器后自动bash
退出容器
exit #退出也关闭容器;
Ctrl+p+Q #退出不关闭容器
创建启动容器时,使用-v参数设置数据卷
docker run … -v 宿主机目录或文件
数据卷是宿主机的一个目录或文件
目录必须是绝对路径
如果目录不存在,会自动创建
可以挂载多个数据卷
拷贝文件
docker cp 主机文件路径 容器ID或容器名:容器路径 #宿主机文件拷贝到容器中
docker cp 容器ID或容名:容器路径 主机文件路径 #容器文件考本到宿主机中
- 最新
- 最热
只看作者