Docker入门

本文介绍了Docker的安装方法,包括使用curl命令一键安装和配置daemon.json。接着详细讲解了Docker的基本命令,如启动、重启、查看状态以及镜像和容器的管理,包括拉取、删除、启动和停止。还提到了Dockerfile用于构建镜像,以及Docker的网络模式和Compose工具。最后讨论了容器监控和数据管理。
摘要由CSDN通过智能技术生成

Docker入门

1、Docker初始

一键安装

curl -sSL https://get.daocloud.io/docker | sh

配置daemon.json文件
docker默认是没有这一文件的,需要手动创建 默认路径为 /etc/docker/daemon.json
配置好后需要重启配置和重启docker

2、Docker入门命令

重启配置

sudo systemctl daemon-reload

重启docker

sudo systemctl restart docker.service

查看docker状态

sudo systemctl status docker -l

查看服务

sudo docker info

启动docker

sudo systemctl start docker

开机自启

sudo systemctl enable docker

查看命令参数

docker 命令  --help

3、Docker镜像命令

查看镜像

docker images

寻找镜像(在远程仓库中寻找)

docker search   镜像名  例子:docker search hello-world

拉取镜像

docker  pull  镜像名:版本号(如果不加版本号默认为最新版本latest)

删除镜像

docker  rmi  -f(强制删除,不推荐使用)  镜像名或镜像ID     删除单个
docker rmi  镜像名:tag  镜像名:tag    删除多个
docker rmi -f $(docker images -qa)   全部删除(生产环境不推荐使用)

虚悬镜像

仓库名、标签都是的镜像,俗称为虚悬镜像dangling image

重构镜像

当我们对现有镜像不满意时,可以自己对现有镜像进行一定的改造
启动镜像并进入内部,改造后退出
docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]

4、Docker容器命令

启动镜像容器

docker run  镜像名    例子:docker run hello-world    启动交互式容器:  docker run  -it --name= my  ubuntu   /bin/bash(使用镜像ubuntu 以交互模式启动一个容器,在容器中执行/bin/bash命令    -i:交互式操作  -t:终端   /bin/hash: 使用shell交互。退出终端,直接输入exit   --name  为容器起一个名字)
--name="容器新名字": 为容器指定一个名称;
-d: 后台运行容器,并返回容器ID,也即启动守护式容器;
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-P: 随机端口映射;
-p: 指定端口映射,有以下四种格式
      ip:hostPort:containerPort
      ip::containerPort
      hostPort:containerPort
      containerPort

查看所有在运行的容器实例

docker  ps
-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n:显示最近n个创建的容器。
-q :静默模式,只显示容器编号。
--no-trunc :不截断输出。

退出容器

exit       容器停止退出
ctrl+P+Q    容器不停止退出

启动容器

docker  start  容器ID或者容器名

重启容器

docker  restart   容器ID或者容器名

停止容器

docker  stop    容器ID或者容器名

强制停止容器

docker  kill    容器ID或者容器名

删除已停止的容器

docker rm 容器ID
docker rm -f 容器ID 强制删除

启动守护式容器(可以在后台运行,适用于mysql、redis、tomcat等容器)

docker run -d centos
问题:然后docker ps -a 进行查看, 会发现容器已经退出
很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.
容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。

这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。例如
service nginx start
但是,这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,
这样的容器后台启动后,会立即自杀因为他觉得他没事可做了.
所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行

正确使用方式:
docker run -d mysql

查看容器日志

docker logs -f -t --tail 容器ID
-t 是加入时间戳
-f 跟随最新的日志打印
--tail 数字 显示最后多少条

查看容器内进程

docker top 容器ID

查看容器内部细节(容器内部的信息,例如网络配置)

docker inspect 容器ID

进入正在运行的容器并以命令行交互

docker exec -it 容器ID bashShell   在容器内打开一个新的终端,启动一个新的进程,用exit退出,不会导致容器停止。  推荐使用
docker attach 容器ID 直接进入容器终端,不会有新的进程产生,用exit退出,会导致容器停止

从容器内拷贝文件到主机上

docker cp  容器ID:容器内路径 目的主机路径
例子 docker cp 容器ID:/usr/local/xu.txt  /etc/x.txt

导入和导出容器

docker export 容器ID>文件名.tar    导出
cat 文件名.tar | docker import -镜像用户或者说是包名(随便命名)/镜像名:镜像版本

容器数据卷

将容器指定目录与挂载容器(主机)指定目录进行数据的共享

解决容器挂载没有权限的问题cannot open directory:Permission  denied
--privileged=true

Dockerfile

Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。

docker容器启动错误

在Linux上如果容器因防火墙启动失败,关闭防火墙后,需要重启docker。

docker netword

docker和虚拟机一样有几种网络模式

compose

对docker构建的服务进行统一编排管理

portainer(轻量级)

对docker实例进行实时数据监控与统计

CAdvisor InfluxDB Granfana CIG

CAdvisor监控收集+InfluxDB存储数据+Granfana展示图标
docker容器实例进行监控(重量级)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳关的美好

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值