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安装

  • Linux(CentOS、Ubuntu):

    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
    
  • MacOS:

    前往网站:https://docs.docker.com/desktop/mac/install 进行安装

  • Windows:

    前往网站:https://hub.docker.com/editions/community/docker-ce-desktop-windows 进行安装

安装完成后执行docker -v,当显示版本后表示安装成功。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C2STNTHn-1638017190644)(/Users/chenruijie/Library/Application Support/typora-user-images/image-20211127194943475.png)]

更换镜像源

避免国外镜像拉取时出现卡顿的情况,可以将镜像换成国内仓库。可以在/etc/docker/docker.json或安装好的Docker软件中找到设置中的daemon.json配置。

{
"registry-mirrors":["https://reg-mirror.qiniu.com/"]
}

镜像网址:

  • 科大镜像:https://docker.mirrors.ustc.edu.cn
  • 网易云镜像:https://hub-mirror.c.163.com
  • 七牛云加速器:https://reg-mirror.qiniu.com

配置完成后执行docker info命令,看到Registry Mirrors表示配置成功。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vJcprsQi-1638016951869)(/Users/chenruijie/Library/Application Support/typora-user-images/image-20211127180740983.png)]

Docker 基本操作

拉取镜像

当本地没有的镜像的话通过docker pull命令去仓库拉取镜像。

docker pull ubuntu

]

创建容器

通过docker create创建容器。

docker create --name myUbuntu ubuntu

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A7C0XIdw-1638016951872)(/Users/chenruijie/Library/Application Support/typora-user-images/image-20211127185227856.png)]

--name myUbuntu表示给创建的容器起别名,此时的容器还没有启动。

启动容器

docker run -it ubuntu /bin/bash

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MfiKjWWo-1638016951872)(/Users/chenruijie/Library/Application Support/typora-user-images/image-20211127185844612.png)]

此时已经进入到创建的ubuntu中,可以执行Liunx的ll命令查看目录,使用exit退出。

这里的-it参数中,i 表示开发容器的标准输入(STDIN),t 则表示告诉 docker,为容器创建一个命令行终端。

对于已经通过create创建的容器,也可以通过docker start name来启动。

docker start myredis

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AGox2tfI-1638016951873)(/Users/chenruijie/Library/Application Support/typora-user-images/image-20211127190459709.png)]

此时--name xxx的作用就出来,因为docker start后面可以通过和生成的ID来进行启动,由于ID是docker自动生成,所以可以通过定义别名来进行更加便捷的启动。

创建 + 启动

拉取镜像、创建容器、启动容器这些步骤可以通过docker run命令来进行一起执行。

docker run --name nginx001 -d -p 8080:80 nginx

在这里插入图片描述

通过run可以把拉取创建启动同时执行,一步到位。如果没有镜像,会去拉取,存在的话就不会拉取了。

-d 表示容器在后台运行,-p 表示将容器的 80 端口映射到宿主机的 8080 端口。

停止容器

通过docker stop可以停止容器。

docker stop myredis

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jQt6P1gC-1638016951874)(/Users/chenruijie/Library/Application Support/typora-user-images/image-20211127192127878.png)]

查看当前运行的容器

docker ps

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HcpJUqgI-1638016951875)(/Users/chenruijie/Library/Application Support/typora-user-images/image-20211127191149959.png)]

  • CONTAINER ID:随机生成的唯一64位的十六进制整数
  • IMAGE: 创建该容器使用的镜像
  • COMMAND: 容器最后运行的命令
  • CREATED: 容器创建的时间
  • STATUS:容器的状态
    • created(已创建)
    • restarting(重启中)
    • running(运行中)
    • removing(迁移中)
    • paused(暂停)
    • exited(停止)
    • dead(死亡)
  • PORTS:容器的端口信息和使用的连接类型
  • NAMES:容器的别名

查看所有容器

docker ps -a

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0F4Hj8G3-1638016951875)(/Users/chenruijie/Library/Application Support/typora-user-images/image-20211127191400987.png)]

查看最新创建的容器

docker ps -l

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lpwSDyBz-1638016951876)(/Users/chenruijie/Library/Application Support/typora-user-images/image-20211127191425675.png)]

查看最新创建的N个容器

docker ps -n=number   

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ihn0QG7e-1638016951876)(/Users/chenruijie/Library/Application Support/typora-user-images/image-20211127191457515.png)]

删除容器

docker rm myUbuntu

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eVYNJIQ4-1638016951876)(/Users/chenruijie/Library/Application Support/typora-user-images/image-20211127191617911.png)]

也可以把name换成id来进行删除,如果是删除正在运行的容器,需要加上-f指令。

容器重启

restart参数提供了特殊情况下容器的重启策略。

  • on:不自动重启容器,默认即此
  • on:failure:[max-retries]:在退出状态为非0时才会重启(非正常退出),有一个可选择参数:最大重启次数,可以设置最大重启次数,重启次数达到上限后就会放弃重启
  • always:始终重启容器,当docker守护进程启动时,也会无论容器当时的状态为何,都会尝试重启容器
  • unless-stopped:始终重启容器,但是当docker守护进程启动时,如果容器已经停止运行,则不会去重启它

创建新容器可以加上restart参数来设置策略,如果已经创建好的容器,执行docker container update --restart=always myredis来设置重启策略。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mtx5niLc-1638016951877)(/Users/chenruijie/Library/Application Support/typora-user-images/image-20211127194202653.png)]

查看容器信息

通过docker inspect命令可以查看已创建容器的信息。

docker inspect myredis 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CQgCYLRH-1638025357205)(/Users/chenruijie/Library/Application Support/typora-user-images/image-20211127213346131.png)]

如果觉得信息过多,可以通过输入format参数来过滤信息,获取自己只想看到的信息。

//查看容器ID
docker inspect -f={{.ID}} myredis
//对于JSON中的数组,则会返回map格式
docker inspect -f={{.NetworkSettings.Networks}} myredis
//查看容器IP地址
docker inspect -f={{.NetworkSettings.Networks.bridge.IPAddress}} myredis

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UyvsxSt2-1638025357205)(/Users/chenruijie/Library/Application Support/typora-user-images/image-20211127214737849.png)]

查看进程

Docker中的查看容器的进程和Linux的一样,通过docker top命令进行查看,但是要保证查看的进程处于运行状态。

docker top myredis

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U5ff10Bw-1638025357206)(/Users/chenruijie/Library/Application Support/typora-user-images/image-20211127215439719.png)]

查看日志

对于后台型的容器,通过docker logs可以查看日志内容。

docker logs myredis

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kGAEVk4K-1638025357206)(/Users/chenruijie/Library/Application Support/typora-user-images/image-20211127220717484.png)]

如果想查看实时的日志而不是历史日志,可以使用-f参数,--tail = number表示日志的输出行数,-t表示日志输出时间。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fcGLuPXv-1638025357206)(/Users/chenruijie/Library/Application Support/typora-user-images/image-20211127221224451.png)]

容器内执行命令

通过docker exec可以进到容器里执行命令。

docker exec -it myubuntu bash

在这里插入图片描述
docker attachdocker exec拥有相同的效果,不同的是使用 docker exec 即使用户从终端退出,容器也不会停止运行,而使用 docker attach 时,如果用户从终端退出,则容器会停止运行,所以推荐使用docker exec

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-28 11:39:26  更:2021-11-28 11:40:29 
 
开发: 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 1:53:39-

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