Docker基础篇

什么是Docker

Docker 是一个开源的应用容器引擎,一键部署应用的利器

为什么要用Docker

当应用程序开发完,需要在别的机器跑的时候,重新配置运行环境是一件很麻烦的事情,尤其是需要很多第三方库或者依赖,比如python环境,java环境,一样一样下载很麻烦,当然使用脚本语言是一种选择,但是Docker是更好的选择,更加方便稳定

docker可以将软件和环境一起打包,宿主机只需要下载一个docker ,下载镜像,run即可

下载Docker

windows 上开发容器程序(不合适)

官网下载Docker Desktop即可,但是可能需要安装wsl2
https://docs.microsoft.com/zh-cn/windows/wsl/install-manual#step-4—download-the-linux-kernel-update-package

命令控制台,wsl2设为默认
wsl --set-default-version 2

下载合适的linux发行版(可选)
https://docs.microsoft.com/zh-cn/windows/wsl/install

https://aka.ms/wslstore

Linux 安装Docker

Deb方式

获取Ubuntu 代号
在这里插入图片描述

查看Linux系统架构
在这里插入图片描述

下载64位系统的deb,

https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/

按照deb 的安装方式安装即可

Docker 存储库方式(推荐)

按照教程执行即可
https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository

注意事项
如果是未知版本linux
括号里填写 bionic
在这里插入图片描述

如果不清楚版本,使用里面的子命令,lsb_release -cs 会返回当前系统名,修改即可

如果是多行命令, $不需要复制,\ 回车换行

以上面3行举个栗子,中文表示操作

复制echo \  回车
复制"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ 回车
复制focal stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null  回车

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
效果
在这里插入图片描述

Docker 镜像

使用Docker主要掌握三个概念,镜像,容器,数据卷
镜像相当于程序的本体,任何制作好的需要在docker运行的程序最终都会成为镜像

使用别人做好的镜像,拉取镜像
docker pull

如果是镜像文件,则使用 docker load 加载镜像

镜像常用命令:

使用docker images --help 查看
查看镜像 docker images
删除镜像 docker rmi 镜像名:TAG
删除所有镜像 docker rmi $(docker images)

启动镜像成为一个容器

docker run -d(运行方式后台) --name 容器名字 -p(小p指定端口) 宿主端口:容器内端口 镜像名
例如nginx 镜像启动
docker run -d --name nginx01 -p 3344::80 nginx

Docker 容器

运行一个镜像就成为了容器

容器常用命令

查看运行的容器 docker ps
查看所有容器:docker ps -a
删除容器:docker rm id
暂停所有容器:docker stop $(docker ps -a -q)
删除所有容器 docker rm $(docker ps -a -q)

进入容器
在这里插入图片描述

进入容器修改命令(当我们需要对容器进行操作,修改配置文件等等)

docker exec -it 容器id sh(交互控制台,相当于开启一个新终端)
docker attach 容器id (进入容器正在执行的终端,不会启动新的进程)

Docker 数据卷

容器是运行的镜像,那么容器停止,再次运行,之前的数据呢? 没了,所以需要数据卷存储数据,只要每次运行的容器指定同样的数据卷,就可以使得容器的数据持久化

数据卷可以挂载多个 添加多个 -v 即可,可以挂载文件 -v 数据卷:文件全路径 即可

数据卷常用命令

查看所有数据卷 docker volume ls
查看信息docker volume inspect volumeName
删除未使用的卷docker volume prune
删除卷 docker volume rm volumeName
删除所有卷:
docker stop$(docker ps-a-q) 停止所有容器
docker volume rm $(docker volume ls -q) 删除所有数据卷
在这里插入图片描述

挂载数据卷

当docker run 的时候,使用 -v 数据卷名:容器内部路径 即可挂载数据卷

docker run --name 容器名 -p 外部端口:内部端口 -v 数据卷名:/容器内部路径 镜像名:TAG
例如verdaccio/verdaccio 镜像,内部使用4873端口,外部同样使用4873映射(外网访问),-v 挂载数据卷名verdaccio,内部路径/verdaccio

docker run -it --name verdaccio -p 4873:4873 -v verdaccio:/verdaccio  verdaccio/verdaccio

进入容器查看内部路径,有时候我们不确定需要映射哪个路径,可以先docker exec -it 容器id sh进入容器查看,确定好路径再重新启动容器

数据卷位置

在这里插入图片描述

默认在
/var/lib/docker/volumes

如果指定路径 -v 外部路径/内部路径 卷会变成匿名卷,

有没有指定路径的具名卷?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值