Docker常用命令

发布时间 2023-03-26 22:45:37作者: 学徒陈

Docker的安装和卸载

# 1. 系统内核的查看
-># uname -r
# 2. 安装前卸载旧版本
-># yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# 3. 需要的安装包添加
-># yum install -y yum-utils
  
# 4. 设置镜像仓库
-># yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo(国外的)
-># yum-config-manager
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  (阿里云Docker镜像)
    
# 更新yum软件依赖
yum makecache fast

# 5. Docker 安装 docker-ce社区版  ee企业版
-># yum install docker-ce docker-ce-cli containerd.io

# 6. 启动Docker
-># systemctl start docker

# 7. Docker启动版本查看
-># docker version 

# 8. 验证启动Docker成功
-># docker run hello-world
    
# 9. 查看下载的镜像
-># docker images

# 卸载Docker
# 1. 卸载依赖
-># yum remove docker-ce docker-ce-cli containerd.io
# 2. 删除资源
-># -rf /var/lib/docker

官网地址:https://docs.docker.com/engine/install/centos/ ,如有不对,依照官网最新版本操作

Docker加速设置(国内服务器)

  1. 登录阿里云官网找到镜像服务
  2. 镜像服务中找到镜像加速器,拿到自己的配置文件(每个人都不同)

img

或者使用中国科学技术大学镜像地址:https://docker.mirrors.ustc.edu.cn

Docker底层原理

Docker是怎么工作的?

Docker是一个Client-Server结构的系统,Docker的守护线程运行在主机上。通Socket从客户端访问!

DockerServer接收到Docker-Client的指令,就会执行这个命令!

Dockers常用命令

帮助命令

docker version
docker info
docker --info

镜像命令

# 1 docker images 查看所有本地的主机上的镜像
work@Gavin:/$ docker images
REPOSITORY       TAG         IMAGE ID       CREATED         SIZE
yapi             latest      b737b2975852   2 months ago    115MB
mysql            latest      b2500a44757f   2 months ago    524MB
mongo            4           143c893415c0   2 months ago    438MB
srcrs/lunarvim   remote      bde972b462a4   2 months ago    1.99GB
enwaiax/x-ui     latest      e6e8975d8c1f   3 months ago    156MB
elasticsearch    8.1.3       b543e34fe3ca   4 months ago    1.2GB
node             12-alpine   bb6d28039b8c   4 months ago    91MB
hello-world      latest      feb5d9fea6a5   11 months ago   13.3kB
# 解释
REPOSITORY  镜像仓库源
TAG         镜像标签
IMAGE ID    镜像ID
CREATED     镜像创建时间
SIZE        镜像大小
# 扩展
docker images -a 显示全部镜像
docker images -q 显示全部镜像ID

# 2 docker search 搜索镜像
work@Gavin:/$ docker search mysql 
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print search using a Go template
      --limit int       Max number of search results (default 25)
      --no-trunc        Don't truncate output

# 3 docker pull 下载镜像
TAG = latest 表示最新版本
#下载最新版本
work@Gavin:/$ docker pull mysql 
#指定版本
work@Gavin:/$ docker pull mysql:5.7 

# 4 docker rmi 删除镜像
work@Gavin:/$ docker rmi -f 容器Id  #删除指定的容器 
work@Gavin:/$ docker rmi -f 容器Id 容器Id 容器Id  #删除指定的多个容器 
work@Gavin:/$ docker rmi -f $(docker images -aq) #删除全部的容器

容器命令

有了镜像才能创建容器,Linux,下载一个centos镜像来测试学习

docker pull centos

新建容器并启动

docker run [可选参数] image

#参数说明
--name="Name"   容器名称 toc1,toc2,用来区分容器
-d              后台运行的方式
-it             使用交互的方式运行,进入容器产看内容
-P              指定容器的端口 —P 8080:8080
    -P 主机端口:容器端口 (常用)
    -P IP:主机端口:容器端口
    -P 容器端口
-p              随机指定端口

#测试,启动并进入容器
work@Gavin:/opt$ docker run -it centos /bin/bash
[root@300b5ec8bb3c /]# ls  #容器内部的centos,基础版本,很多命令不完善
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr


列出所有运行的容器

#docker ps 
   # 列出当前正在运行的容器
-a # 列出当前正在运行的容器,带出历史运行过的容器
-n=? # 显示最近创建的容器
-q   #列出当前正在运行的容器的编号

# 容器退出
exit      #容器停止并退出
ctrl+P+Q  # 容器不停止退出

删除容器

docker rm 容器ID     # 删除指定的容器,不能删除正在运行的容器
docker rm -f 容器ID  # 强制删除容器,即使正在运行
docker rm -f $(docker ps -aq)     #删除所有容器

启动和停止容器

docker strat 容器ID 
docker restart  容器ID   #重启
docker stop  容器ID 
docker kill  容器ID 

docker对原容器进行修改(添加某些属于自己的内容),提交生成新的镜像

例如:在Ubuntu容器中添加vim指令

注意:使用apt-get update 命令时可能因为网络不通的原因导致无法下载

​ 推荐参数上添加网络指定

sudo docker run -it --name cys --net=host ubuntu /bin/bash

提交

     docker commit -m=[提交信息] -a=[作者名] [容器ID] [镜像名]
sudo docker commit -m="vim add cmd ok" -a="cys" 8c3e0ef27cb2 cys/test

常用的其他命令

查看容器中进程信息

# 命令 docker top 容器ID

查看日志

# 命令 docker log -f -t --tail (行数) 容器ID

后台启动容器

# 命令 docker run -d 镜像名

查看镜像的元数据

# 命令 docker inspect 容器ID

进入当前正在运行的容器

# 容器都是后台运行,需要进入容器,修改一些配置
#命令
  #方式一
 docker exec -it 容器iD 路径    # 进入容器后开启一个新的终端,可以在里面操作(常用)
 
  #方式二  正在执行当前的代码。。。。
 docker attach  容器iD         # 进入容器正在执行的终端,不去启动新的进程

从容器中拷贝到主机上

# 命令 docker cp 容器ID:容器内路径  目的的主机路径