【虚拟化docker】(一)---对Docker虚拟化容器技术的介绍和操作


【虚拟化docker】(一)—对Docker虚拟化容器技术的介绍和操作


本文主要用于记录关于 Docker 虚拟化软件的介绍,安装和操作指令说明。

关于 Docker

Docker 大家听起来肯定不陌生,由于云原生的爆火现在 Docker 也逐渐映入人们眼帘,那么它是干什么的呢,本篇就给大家介绍一下,然后再说一下 Docker 的一些基本概念。众所周知网站或者桌面 App 的开发需要分工合作,开发岗、测试岗、运维岗、等等。开发岗就是进行软件需求的实现,运维就是负责软件的运行与维护,这两个岗位也是打交道最多的岗位之一,他们是两群人面对的是一个软件同一份代码,但是由于他们所处的环境,他们所拥有的电脑环境不一样,对软件操作起来就显得很鸡肋,比如开发岗张三写了一个软件,让运维岗李四去运行维护,但是他们电脑配置不一样。李四连软件跑都跑不起来。李四就让张三把运行软件需要的配置写出来。张三就不耐烦了,因为运行环境太复杂自己也不知道。于是就产生了矛盾。Docker 最直接的功能就是解决他们的矛盾。利用 Docker 开发岗人员可以直接将软件所处的环境及软件打包一份发给运维岗,运维再使用 Docker 将所需要的环境拉取过来。直接极大地提高了软件的可移植性。有了 Docker 开发岗可以直接变为(开发 + 运维)岗,提高软件的开发效率。

对于 Docker 的介绍可以查看该关于 Docker 的 wiki 词条链接

Docker 安装

参考 Docker 安装

Mac 切换 docker 镜像源

修改 Preferences->Docker Engine 配置文件,在后面加入:

"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]

如下

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn"
  ]
}

Docker 常用指令

参考 Docker 常用指令 - 知乎

基本命令

1. 运行应用程序

Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。

[root@fuyimin home]# docker run centos /bin/echo "hellow world"hellow world
2. 运行交互式的容器
docker run -it centos /bin/bash 

参数解析:

  • -t : 在新容器内指定一个伪终端或终端。
  • -i : 允许你对容器内的标准输入(STDIN)进行交互。
3. 退出容器命令
exit
4. 后台模式启动容器
[root@fuyimin home]# docker run -d centos /bin/sh -c "while true;do echo hello world;sleep 1 ;done"716fdf9d9ba4ae9008a5c4bf89b8ff8871c8ca8212403a0b445fca30b4ec841c
5. 列出正在运行的容器:
docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES 
  • CONTAINER ID:容器 ID。
  • IMAGE: 使用的镜像。
  • COMMAND: 启动容器时运行的命令。
  • CREATED: 容器的创建时间。
  • STATUS: 容器状态。
  • PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
  • NAMES: 自动分配的容器名称。

状态有 7 种:

  • created(已创建)
  • restarting(重启中)
  • running 或 Up(运行中)
  • removing(迁移中)
  • paused(暂停)
  • exited(停止)
  • dead(死亡)

镜像的基本命令

1. 列出镜像

我们可以使用 docker images 来列出本地主机上的镜像。

1. docker images #列出本机上的镜像
[root@fuyimin home]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
centos       latest    300e315adb2f   7 months ago   209MB# -a , --all  列出所有镜像
# -q , --quiet 只显示镜像的id 

各个选项的说明:

  • REPOSITORY:表示镜像的仓库源。
  • TAG :镜像的标签。
  • IMAGE ID :镜像的 ID。
  • CREATED :镜像的创建时间。
  • SIZE :镜像的大小。
2. 删除镜像
[root@fuyimin home]# docker rmi -f 容器id  #删除指定镜像
[root@fuyimin home]# docker rmi -f 容器id 容器id 容器id #删除多个镜像
[root@fuyimin home]# docker rmi -f $(docker images -aq) #删除全部镜像
3. 搜索镜像
[root@fuyimin home]# docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   11205     [OK]
mariadb                           MariaDB Server is a high performing open sou…   4259      [OK]
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   833                  [OK]
[root@fuyimin home]# docker search mysql --filter=STARS=3000 #按照STARS来过滤
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   11205     [OK]
mariadb   MariaDB Server is a high performing open sou…   4259      [OK] 
  • NAME: 镜像仓库源的名称。
  • DESCRIPTION: 镜像的描述。
  • OFFICIAL: 是否 docker 官方发布。
  • stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
  • AUTOMATED: 自动构建。
4. 下载镜像
docker pull 镜像名[:tag]   #不写tag默认最新

容器的基本命令

注:有了镜像才能创建容器。

1. 下载镜像
docker pull centos  #下载一个centos镜像
2. 启动容器
docker run -it centos /bin/bash

参数说明:

  • -i: 交互式操作。
  • -t: 终端。
  • ubuntu: ubuntu 镜像。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
3. 列出所有运行的容器
docker ps #列出当前正在运行的容器-a #列出当前正在运行的容器+带出历史运行过的容器-n=?#显示最近创建的容器-q #只显示容器编号
4. 退出容器
exit #直接退出停止容器ctrl +P +Q #容器不停止退出
5. 删除镜像
docker rm 容器id #删除指定镜像,不能删除正在运行的镜像
docker rm -f $(docker ps -aq) #删除所有镜像
docker ps -a -q |xargs docker rm #删除所有镜像
6. 启动和停止容器操作
docker start 容器id #启动容器docker restart 容器id #重启容器docker stop 容器id #停止当前正在运行的容器docker kill 容器id #强制停止当前容器
7. 后台启动容器
docker run -d 镜像名[root@fuyimin ~]# docker run -d centos
9f7e1269ae08c802cdd8342f6e90367b252cc9a0081fef5745768a09f54fbaf9#docker容器使用后台运行 ,就必须要有一个前台进程,docker发现没有应用,就会自动停止
8. 查看日志
docker logs -f -t --tail 容器# --tf 显示日志# --tail number 要显示日志条数
9. 查看容器中进程信息
docker top 容器id   #容器必须启动状态[root@fuyimin ~]# docker top eb21e0562d06
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMDroot                11620               11600               0                   20:32               pts/0               00:00:00            /bin/bash
10. 查看镜像的元数据
docker inspect 容器id[root@fuyimin ~]# docker inspect eb21e0562d06[{"Id": "eb21e0562d06435a3a1d8e36fe3c0f68b0aa955b1e85327ba86021a1bfb4e9d7","Created": "2021-08-04T12:32:56.680271569Z","Path": "/bin/bash","Args": [],"State": {"Status": "running","Running": true,"Paused": false,
11. 进入当前正在运行的容器
1.docker exec -it 容器id /bin/bash #推荐大家使用,因为此退出容器终端,不会导致容器的停止。[root@fuyimin ~]
# docker exec -it eb21e0562d06 /bin/bash[root@eb21e0562d06 /
2. docker attach 容器id[root@fuyimin ~]# docker attach eb21e0562d06
12. 文件拷贝进主机
docker cp 容器id:/文件目录/文件名 /主机文件目录

参考文档

感悟

相逢恨晚,再也不用为搭环境而扯皮浪费时间了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值