Docker基础

文章目录

  • Docker基础
    • 一、安装docker
        • 前期准备
        • 使用yum安装docker-ce
    • 二、Docker基本使用
        • 说明:
        • 1.基本操作
        • 2.镜像管理
          • 查看镜像 docker images
          • 搜索镜像 docker search
          • 拉取镜像 docker pull
          • 删除镜像 docker rmi
          • 镜像分层 docker commit
          • 构建镜像 docker build
        • 3.容器管理
          • 运行容器 docker run
          • 查看容器 docker ps | docker ps -a
          • 退出容器
          • 进入正在运行的容器并以命令行交互
          • 启动、重启、停止容器
          • 删除容器 docker rm
          • 查看容器日志
          • 查看容器内运行的进程
          • 查看容器内部细节
          • 从容器内拷贝文件到主机上
          • 导入和导出容器

Docker基础

一、安装docker

前期准备

给主机配置好基本的yum源(推荐使用阿里云源)


使用yum安装docker-ce

docker-ce源可以在各大镜像站找到,例如

阿里云开源镜像站

清华大学开源镜像站

以下使用阿里云源做示范

Docker基础_第1张图片

Docker基础_第2张图片


安装完之后使用docker version验证

//安装完之后是这样的
[root@wanf ~]# docker version 
Client: Docker Engine - Community
 Version:           24.0.7
 API version:       1.43
 Go version:        go1.20.10
 Git commit:        afdd53b
 Built:             Thu Oct 26 09:09:18 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.7
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.10
  Git commit:       311b9ff
  Built:            Thu Oct 26 09:08:20 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.24
  GitCommit:        61f9fd88f79f081d64d6fa3bb1a0dc71ec870523
 runc:
  Version:          1.1.9
  GitCommit:        v1.1.9-0-gccaecfc
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
[root@wanf ~]# 

二、Docker基本使用

说明:

建议注册一个docker账号之后再使用docker。docker官网


1.基本操作
docker login			//登录账号
docker logout			//登出账号
docker info			//查看docker概要信息
docker --help			//查看docker总体帮助文档
docker 命令 --help	    //查看docker命令帮助文档
2.镜像管理
查看镜像 docker images
docker images			//列出本地镜像
	-a				//列出所有本地镜像(含历史映像层)
	-q				//只显示镜像ID
docker images nginx		//列出名为nginx的镜像

//示例
[root@wanf ~]# docker images -a
REPOSITORY     TAG       IMAGE ID       CREATED        SIZE
lcwanf/nginx   v10.2     021283c8eb95   4 months ago   187MB

//字段解释
    REPOSITORY:表示镜像的仓库源
    TAG:镜像的标签版本号
    IMAGE ID:镜像ID
    CREATED:镜像创建时间
    SIZE:镜像大小 
搜索镜像 docker search
docker search nginx			//在官方仓库搜索名为nginx的镜像
docker search lcwanf		//搜索用户lcwanf仓库里面的镜像
docker search --limit nu		//只输出查到的前nu条记录

//示例一
[root@wanf ~]# docker search lcwanf
NAME           DESCRIPTION   STARS     OFFICIAL   AUTOMATED
lcwanf/nginx                 0                    

//示例二
[root@wanf ~]# docker search nginx --limit 3
NAME                          DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                         Official build of Nginx.                        19181     [OK]       
unit                          Official build of NGINX Unit: Universal Web …   15        [OK]       
nginxinc/nginx-unprivileged   Unprivileged NGINX Dockerfiles                  130                  


//字段解释
    NAME:镜像名称
    DISCRIPTION:镜像说明
    STARTS:点赞数
    OFFICAL:是否是官方认可的
    AUTOMATED:是否自动构建 
拉取镜像 docker pull
docker pull 镜像名字[:TAG]		//拉取镜像(TAG:版本号)

//示例
[root@wanf ~]# docker pull lcwanf/nginx:v10.0
v10.0: Pulling from lcwanf/nginx
Digest: sha256:34882051719faa5b6ff57152a6bc57448d699170fca0bd7e14520d5dc18f0e36
Status: Downloaded newer image for lcwanf/nginx:v10.0
docker.io/lcwanf/nginx:v10.0
[root@wanf ~]# docker images 
REPOSITORY     TAG       IMAGE ID       CREATED        SIZE
lcwanf/nginx   v10.0     021283c8eb95   4 months ago   187MB
删除镜像 docker rmi
docker rmi 镜像ID|镜像名		//删除一个本地镜像
docker rmi  -f			   //强制删除

//示例
[root@wanf ~]# docker rmi lcwanf/nginx:v10.0 
Untagged: lcwanf/nginx:v10.0
[root@wanf ~]# docker images 
REPOSITORY     TAG       IMAGE ID       CREATED        SIZE

[root@wanf ~]# 
镜像分层 docker commit

Docker中的镜像分层,支持通过扩展现有镜像,创建新的镜像。我们进行扩展后提交到本地成为一个新的镜像

语法:docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
选项 默认值 描述
-a 作者信息
-c 将Dockerfile指令应用于创建的镜像
-m 提交消息
-p true 提交期间暂停容器
构建镜像 docker build
docker build -t 新镜像名字:TAG .  # 注意 TAG后面有个空格,有个点
 
example:
docker build -t centosjava8:1.5 .
3.容器管理
运行容器 docker run

一键创建,启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
 
常用参数:
--name=NAME   #为容器指定名字为NAME,不使用的话系统自动为容器命名
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
 
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
也即启动交互式容器(前台有伪终端,等待交互,一般连用,即-it);
 
-P: 随机端口映射,大写P
-p: 指定端口映射,小写p


示例
[root@wanf ~]# docker run -d -p 8080:80 --name nginx22 -it 021283c8eb95
查看容器 docker ps | docker ps -a

只能看到正在运行的容器

docker ps [OPTIONS]
 
常用参数:
-a :列出当前所有正在运行的容器+历史上运行过的 (在运行和未运行的容器都可以看到)
-l :显示最近创建的容器。
-n nu:显示最近nu个创建的容器。
-q :静默模式,只显示容器编号。
退出容器

1.exit

run进去容器,exit退出,容器停止

2.ctrl+p+q

run进去容器,ctrl+p+q退出,容器不停止


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

1.docker exec -it 容器ID/容器名称 bashShell

2.docker attach 容器ID

//容器ID
docker exec -it 容器ID /bin/bash
docker attach 容器ID

示例:
[root@wanf ~]# docker exec -it fb4ed6905793 /bin/bash
root@fb4ed6905793:/# ls
bin   docker-entrypoint.d   home   lib64   mnt	 root  srv  usr
boot  docker-entrypoint.sh  lib    libx32  opt	 run   sys  var
dev   etc		    lib32  media   proc  sbin  tmp
root@fb4ed6905793:/# 
 
----------------------------------------------------------
 
//容器名称
docker exec -it nginx /bin/bash
docker attach nginx
启动、重启、停止容器
docker start 容器ID或者容器名			//启动容器
docker restart 容器ID或者容器名			//重启容器
docker stop 容器ID或者容器名			//停止容器
docker kill 容器ID或容器名			 //强制停止容器
删除容器 docker rm
docker rm 容器ID				 //删除一个已经停止的容器  
docker rm -f 容器ID			 //强制删除(正在运行的也可以删除)
查看容器日志
docker logs 容器ID
查看容器内运行的进程
docker top 容器ID
查看容器内部细节
docker inspect 容器ID
从容器内拷贝文件到主机上
docker cp  容器ID:容器内路径 目的主机路径
 
example:
#以ubuntu为例,我们在/tmp目录下通过touch a.txt创建a文本,将其复制到本机download目录下
docker cp 958443b97285:/tmp/a.txt /download
导入和导出容器

export 导出容器的内容留作为一个tar归档文件[对应import命令]

import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]

docker export 容器ID > 文件名.tar
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
#以ubuntu为例
docker export 958443b97285 > abcd.tar
cat abcd.tar | docker import - atguigu/ubuntu:3.7  # 注意 - 左右有分别有一个空格

你可能感兴趣的:(docker,容器,运维)