【Docker】【Linux】入门级使用

docker

docker 就是一个智能便携的“虚拟容器”,能将应用和所有需要依赖的包打包在一起,这个容器可以上传到一个注册表中,有了这个虚拟容器我们就能在任何地方快速地运行它。

镜像容器的概念:

  • 镜像是一个只读的模板,用于创建容器。它包含了操作系统环境、应用程序及其依赖、库文件等,简化了应用的部署和运行。
  • 容器是镜像的实例,镜像类似于编程语言中的类,那么容器就是类的实例也就是对象。它是一个轻量级、可移植、自给自足的可执行包,包含了运行应用程序所需的一切。

1. 创建一致的开发环境
在不同的电脑上工作都需要同样的环境下运行一个应用,Docker可以把所有代码、库和运行环境打包到一个容器里,这样在不同设备中运行容器即可。
2. 简化应用部署
3. 快速启动和停止应用
4. 隔离应用
Docker容器是相互隔离的,那么可以在同一台机器上同时运行多个应用而不会互相干扰。

1. 常用命令

查看

# 查看命令
docker ps -a          # 查看所有docker容器
docker ps             # 查看正在运行的容器
docker images         # 查看所有的镜像
docker inspect <容器名>        # 查看容器的对应信息 获取容器对外端口......
docker log --tail 500 <容器名>     # 查看容器运行输出日志

拉取镜像创建容器

#docker 拉取注册表仓库中的镜像
docker pull 192.6.12.186:5000/szxt/flask:20230511     #拉取服务器中的镜像到本地
# 其中 :20230511 表示拉取的镜像的标签tag

#创建启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
如:
docker run -d --name test_container -p 12000:10000 192.6.12.186:5000/szxt/falsk:20230511  

'-d', '--detach':  以后台模式运行容器,并返回容器ID,这样我们就可以在后台运行容器,无需占用当前终端。
'--name':  为容器指定一个名称,可以使用这个名称管理容器,比自动生成的容器id方便
'-p', '--publish':  将主机端口映射到容器端口。  ‘ 主机端口: 容器端口’

'-e',' --env':  设置环境变量,在容器中运行的应用程序可以使用这些环境变量
    docker run -d -e MY_ENV_VAR=value nginx

'-v': 挂载主机目录或文件到容器内的目录,语法为 ‘ 主机路径:容器路径’ 对于数据持久化和共享文件有用
    docker run -d -v /host/path:/container/path nginx

进入容器修改并提交新的镜像

#进入容器
docker exec -it test_container /bin/bash(或者/bin/sh)   
'-it': 表示以交互模式进入容器

#进入查看修改容器内文件
vim test_bycyh  # vim编辑器进入文件编辑

#退出容器
在终端输入: 'exit'    #操作完成后退出容器

#先查询出目前容器的NAMES 或者 CONTAINER ID,然后
docker commit test_container 192.6.12.186:5000/szxt/falsk:test    #即可得出新的修改好的镜像

#若要推送到远程服务器 192.6.12.186:50000 上
docker login -u <username> -p <password> http://192.6.12.186:5000

#推送前可以给镜像打上标签,也可直接理解为重命名
docker tag  192.6.12.186:5000/szxt/falsk:test  docker.com/newname/newfalsk:new_myname

docker push 192.6.12.186:5000/szxt/falsk:test   #将该镜像推送至192.6.12.186:5000的szxt/falsk中,标签是test
# 因此镜像的命名其实需要遵循一定的规则

镜像命名规则

通常遵循以下结构:

[注册表地址/]仓库名称[:标签]
  • 注册表地址:可选项,指定Docker镜像所在的注册表地址,如果镜像不存储在Docker Hub上而在自己的仓库上,则需要指定注册表地址,如 docker push 192.6.12.186:5000/szxt/falsk:test 中的 192.6.12.186:5000
  • 仓库名称:镜像的名称,可以包含组织或用户的名称(szxt/falsk
  • 标签:可选项,用于表示镜像的版本和变种(:test)

这些规则确保镜像的唯一性和一致性。

2. 端口映射理解

# 通过镜像运行创建容器时
docker run -p [主机端口]:[容器端口] [镜像]
  • 主机端口:就是自己电脑的端口,用于访问容器服务的端口
  • 容器端口:容器内部的端口,服务在该端口运行

在端口选择时,避开常用的端口(HTTP的8080,MySQL的3306),且选择目前空闲的端口即可

Linux上检查端口占用

1. netstat -tuln | grep [端口号]
2. ss -tuln | grep [端口号]
3. lsof -i :[端口号]

Windows上检查端口占用

# cmd 中
netstat -aon | findstr :[端口号]


# powershell中
Get-NetTCPConnection -LocalPort [端口号]
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值