IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> docker常用命令 -> 正文阅读

[系统运维]docker常用命令

docker虽然有windows、macos版本,但是只建议在linux上用docker。
因为docker只能在linux中实现容器(其他系统实际上是安装linux虚拟机上使用docker)。

1. docker安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
#从脚本安装Docker CE。(一般包括docker-ce,docker-cli,containerd.io)
#也可以设置软件仓库用apt、yum安装。详见https://docs.docker.com/engine/install/

docker ce脚本会自动安装docker-ce, docker-ce-cli和containerd.io。

  • docker-ce:社区版(community edition)的docker engine。
  • docker-ce-cli:docker-ce引擎的命令行界面。
  • containerd.io:containerd服务(service也称为守护进程),在docker引擎上工作,是docker包必须的。

docker官网提供的docker desktop是包含docker engine, decker cli, docker compose, kubernetes等工具的包。docker desktop个人版免费,高级版收费。

docker基础命令

  • docker -v:查看docker是否安装,显示安装版本
  • docker version:查看docker详细版本信息
  • docker info:查看docker信息(包括是否正在运行)

docker常用名词

  • 容器(container):docker创建的一个实例(相当于一个沙箱,虽然不是虚拟机,但是使用中类似虚拟机),容器间互不影响。
  • 镜像(image):类似于虚拟机中的系统镜像,docker根据镜像创建容器。镜像配置了容器的系统版本、基本设置、安装的软件等。
  • 仓库(reposity):存放镜像的仓库。

2. docker镜像操作

  • docker search centos #搜索仓库中是否存在centos镜像
  • docker pull centos #从仓库中获取centos镜像,并下载到本地
  • docker images #查看当前已下载的镜像列表
  • docker rmi centos #删除一个或多个镜像。 -f可以强制删除

仓库换国内源的方法

  • vi /etc/docker/daemon.json
  • 在{}内增加一行:"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"],

3. 容器操作

  • docker run centos:根据centos镜像创建容器实例
    • -d:后台运行容器,并返回一个容器id
    • -i:交互式运行容器
      • exit:交互模式下,退出并停止容器。
      • Ctrl+p,Ctrl+q:交互模式下,只退出容器,不停止容器
    • -it centos /usr/bin/bash:为容器重新分配一个为输入终端,通常与-t同时使用
    • -p 8080:80:指定端口映射(把8080端口映射到80)
  • docker run centos python app.py:创建容器,并且在docker中运行一个应用。
  • docker ps:列出当前运行的容器
  • docker ps -a:列出所有容器。同docker container ls -a
  • docker top 容器ID或容器名称:查看容器内运行的进程。必须是正在运行的容器。
  • docker inspect 容器ID或容器名称 查看容器详细配置信息

docker容器的自动退出

docker会在前置进程(主线程)运行完毕后自动退出。所以任务很简单的容器,比如helloworld,1秒左右就会自动结束。
所以要容器一直运行,就需要有一个常驻前置进程。

有人就用while循环(当然要sleep一下)实现常驻进程。(bash用参数-c执行循环)

docker run -d centos bash -c "while true;do echo hello docker;sleep 1;done"

用交互模式也可以保持docker不退出

docker run -itd centos bash
#docker run -id centos 也ok

前台运行一个常驻应用也是也可以的。

容器运行后执行操作

  • docker attach 容器ID:以交互方式进入到指定容器。退出后容器结束。
  • docker exec 容器ID python app.py:在容器中运行指定的应用或命令。
    • -i:交互模式
    • -t:指定伪终端
    • -d:后台运行
    • -w:指定容器内部的工作目录
  • docker exec -i 容器ID bash:交互方式在容器中运行bash。-it也ok。attach不同,退出后容器不会结束。
  • docker logs 容器ID:查看容器内部的标准输出。
  • docker cp 容器ID:容器内的文件路径 宿主机路径从容器内拷贝文件到宿主机

4. 容器生命周期管理

  • docker start 容器id:启动已经停止的容器
  • docker stop 容器id:停止运行中的容器
  • docker restart 容器id:重启容器
  • docker kill 容器id:强制停止容器
  • docker rm 容器id:删除已经停止的容器,-f可以强制删除正在运行的容器
  • docker pause 容器id:暂停容器
  • docker unpause 容器id:恢复暂停的容器

更多的容器docker的命令可以参考https://blog.csdn.net/weixin_39895862/article/details/110465890

5. docker服务(service)管理

docker由后台服务端和客户端组成。从docker version和docker info都可以看到,docker包含server和client。

docker的server在linux中以服务(service也称为守护进程daemon)的形式在后台运行。老版本的linux用service命令管理,新版本的linux通常使用systemctl命令管理service。

要使用docker必须先启动docker服务。但是,实际使用中并不需要先启动服务,在使用docker命令时,会自动启动docker服务,并且非常快。对于服务器,通常还是设置自动启动docker服务。

管理serivice的基本命令

# 启动服务
systemctl start docker.service

# 关闭服务
systemctl stop docker.service

# 重启服务
systemctl restart docker.service

# 杀死一个服务的所有子进程
systemctl kill docker.service

# 重新加载一个服务的配置文件
systemctl reload docker.service

# 重载所有修改过的配置文件
systemctl daemon-reload docker.service

# 显示服务的状态
systemctl status docker.service

# 显示某个 Unit 的所有底层参数
systemctl show docker.service

# 列出一个Unit的所有依赖(service也是一个Unit)
systemctl list-dependencies docker.service
systemctl list-dependencies --all docker.service  #展开所有参数

注意:docker有两个service:docker.service和containerd.service。docker.service依赖于containerd.service。所以:

  • 启动docker.service就会自动启动containerd.service。反之不行。
  • 关闭containerd.service会自动关闭docker.service。反之不行。

服务名称可以省略.service。比如下边命令也是可以的:

systemctl start docker

开机自动启动服务命令

# 在开机时启用服务
systemctl enable docker.service

# 在开机时禁用服务
systemctl disable docker.service

# 查看服务是否开机启动
systemctl is-enabled docker.service

# 查看开机自启动的服务列表
systemctl list-unit-files | grep enabled

# 列出所有service的配置(是否自启动)
$ systemctl list-unit-files --type=service

查看当前系统服务状态列表

# 查看所有服务(无论是活动的、运行的、退出的或者是失败的)
systemctl --type=service     #或者sudo

# 查看启动失败的服务列表
systemctl --failed

# 查看当前活动的服务列表
systemctl --type=service --state=active  #或者systemctl list-units --type=service --state=active

# 查看当前正在运行的服务列表
systemctl --type=service --state=running  #或者systemctl list-units --type=service --state=running

systemctl详细命令见http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-05 22:03:22  更:2022-02-05 22:04:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 6:42:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码