淘先锋技术网

首页 1 2 3 4 5 6 7

一:docker的镜像操作

1:搜索镜像

本环境基于已安装好的Docker环境

格式:docker search 服务名

[root@server1 ~]# docker search nginx
name表示镜像名字
DESCRIPTION 表示该镜像的功能
STARS表示下载热度

在这里插入图片描述

2:下载镜像

docker commit [选项] 容器ID/名称 仓库名称:[标签]
-m 说明信息
-a 作者信息
-p 生成过程中停止容器的运行
[root@server1 ~]# docker pull centos:7
7: Pulling from library/centos
2d473b07cdd5: Pull complete 
Digest: sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430789b60e
Status: Downloaded newer image for centos:7
docker.io/library/centos:7

3:查看已下载的镜像

[root@server1 ~]# docker images
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID号
SIZE 镜像大小

在这里插入图片描述

4:获取镜像的详细信息

格式:docker inspect 镜像ID号
           docker inspect 名字
[root@server1 ~]# docker inspect 8326be82abe6

在这里插入图片描述

5:添加镜像标签

[root@server1 ~]# docker tag nginx:latest nginx:web

在这里插入图片描述

6:删除镜像

格式:docker rmi 仓库名:TAG标签
[root@server1 ~]# docker rmi nginx:latest
#在设置别名的情况下删除id号是不行的
[root@server1 ~]# docker rmi  bc9a0695f571 
Error response from daemon: conflict: unable to delete bc9a0695f571 (must be forced) - image is referenced in multiple repositories

在这里插入图片描述

7:导出镜像

格式:docker save -o 文件名 镜像名
[root@server1 bak]# docker save -o nginx nginx:latest 

在这里插入图片描述

8:载入镜像

[root@server1 bak]# docker load < ngin

在这里插入图片描述

9:上传镜像到公有仓库(必须要有docker官方账号,且创建公有仓库

//登录
docker login
Username: docker
password:
Emall: xxx@xxx. com    #输入账号、密码
//上传
docker push 镜像名:标签名(一般公司使用私有仓库)

二:容器的操做

1:创建容器(创建前必须有该镜像)

格式:docker create -it 镜像名 运行程序
[root@localhost abc]# docker create -it nginx:latest /bin/bash
-i  指容器的标准输入保持打开
-t  指Docker分配一个伪终端
[root@server1 bak]# docker create -it nginx:latest /bin/bash
5f34cac6900f04caad155ef332101ce1ca7ef21e1e5f85fd825b3faf8058ad43

2:查看容器运行状态

状态作用
created已创建
restarting重启中
running运行中
removing迁移中
paused暂停
exited停止
dead死亡
[root@server1 bak]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               
5f34cac6900f        nginx:latest        "/docker-entrypoint.…"   26 seconds ago      Created                 
[root@server1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
5f34cac6900f        nginx:latest        "/docker-entrypoint.…"   7 minutes ago       Created                                 admiring_brown

3:开启容器,关闭容器

格式:docker start 容器ID号
[root@server1 ~]# docker start af255575064f

格式:docker stop 容器ID号
[root@server1 ~]# docker stop af255575064f
[root@server1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
5f34cac6900f        nginx:latest        "/docker-entrypoint.…"   7 minutes ago       Created                                 admiring_brown
[root@server1 ~]# docker start 5f34cac6900f
5f34cac6900f
[root@server1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
5f34cac6900f        nginx:latest        "/docker-entrypoint.…"   11 minutes ago      Up 5 seconds        80/tcp              admiring_brown

4:docker run命令

命令格式:docker run 镜像名 /bin/bash -c ls /
[root@server1 bak]# docker run mysql /bin/bash -c ls /
注释:
 /bin/bash指定运行环境,-c指定执行命令

docker run命令会执行创建容器,开启容器,执行命令,关闭容器等一系列过程。如果没有创建容器和镜像,就会从下载镜像开始执行,一直到关闭容器。执行完成后直接关闭,状态为exited

5:进入容器与退出容器

Docker中系统镜像的缺省命令是 bash,如果不加 -ti bash 命令执行了自动会退出。这是因为如果没有衔接输入流,本身就会马上结束。加-ti 后docker命令会为容器分配一个伪终端,并接管其stdin/stdout支持交互操作,这时候bash命令不会自动退出。

格式:docker exec -it 容器ID /bin/bash
[root@server1 abc]# docker exec -it af255575064f /bin/bash
[root@server1 ~]# docker exec -it 2b9b439bf782 /bin/bash
[root@2b9b439bf782 /]# ls
anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

6:导出、导入容器

  • 导出
导出容器格式为:docker export 容器ID > 定义容器名
[root@server1 abc]# docker export b1e1844148e8 > centos
[root@server1 ~]# ls
anaconda-ks.cfg  bak  centos  initial-setup-ks.cfg  nginx  公共  模板  视频  图片  文档  下载  音乐  桌面
  • 导入
格式:cat 容器名 | docker import - 镜像:标签
[root@server1 ~]# cat centos | docker import - centos:web
sha256:c923c1f5a07228c01e31ab030450c0e3556f27ea9c8511caab35e309c4328f2d
[root@server1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              web                 c923c1f5a072        4 seconds ago       204MB
nginx               latest              bc9a0695f571        10 hours ago        133MB
tomcat              latest              e0bd8b34b4ea        6 days ago          649MB
centos              7                   8652b9f0cb4c        11 days ago         204MB

7:删除容器

容器必须是exited 关闭状态,才能删除

[root@server1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                            PORTS               NAMES
5f34cac6900f        nginx:latest        "/docker-entrypoint.…"   2 hours ago         Exited (137) About a minute ago                       admiring_brown
[root@server1 ~]# docker rm 5f34cac6900f
5f34cac6900f
[root@server1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS   

8:批量停止容器

docker stop `docker ps -aq`

9:批量删除容器

第一种:
[root@server1 ~]# dcoker rm `docker ps -aq` 

第二种:
[root@server1 ~]# docker ps -a | awk '{print "docker rm"$1}' | bash    不能删除up状态的容器

在这里插入图片描述

三:Docker 常用命令解释

命令作用
-a显示所有的容器,包括未运行的。
-f根据条件过滤显示的内容。
–format指定返回值的模板文件。
-l显示最近创建的容器。
-n列出最近创建的n个容器。
–no-trunc不截断输出。
-q静默模式,只显示容器编号。
-s显示总的文件大小。

管理操作

作用命令
搜索镜像docker search 镜像
下载镜像docker pull 镜像
创建容器docker create -it nginx /bin/bash
运行docker start 容器ID
一条龙运行docker run -itd nginx /bin/bash
进入容器docker exec -it 容器ID bash
停止容器docker stop 容器ID
删除容器docker rm 容器ID
删除镜像docker rmi 镜像名称

辅助操作

作用命令
查看镜像docker images
查看容器docker ps -a
镜像导出docker save -o 保存位置 镜像名称
镜像导入docker load < 文件位置
容器导入和导出docker export 容器ID > 文件位置
cat 文件位置docker import - 镜像名称