Docker安装与常用命令合集

1. docker安装

  • 查看环境
    查看系统内核

uname -r
在这里插入图片描述
内核版本为3.1以上

系统版本

cat /etc/os-release
在这里插入图片描述

-安装
可查看官网的帮助文档
https://docs.docker.com/get-started/overview/
在这里插入图片描述
(1)卸载旧版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

(2)设置存储库
安装yum-utils包(提供yum-config-manager 实用程序)并设置稳定存储库。

 yum install -y yum-utils    \\安装依赖
 sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    //此处使用的是国外镜像,可搜索国内阿里云镜像,比如下面
	http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

在这里插入图片描述
PS:此处可更新yum包索引
yum makecache fast

(3)安装 Docker 引擎(最新版本)

yum install docker-ce docker-ce-cli containerd.io

在这里插入图片描述
(4)启动docker

systemctl start docker
docker version

在这里插入图片描述
(5)测试docker命令

docker run hello-world

在这里插入图片描述

  1. 卸载
    在这里插入图片描述

2. run的流程与docker原理

  • run的流程
    在这里插入图片描述
    -底层原理
    (1)docker是怎么进行工作的?
    docker是一个client-server结构的系统,docker的守护进程(服务)运行在主机上,通过socket从客户端访问
    DockerServer接收到Docker-client的指令,就会执行这个命令
    在这里插入图片描述
    (2)docker为什么比虚拟机快
    Docker有着比虚拟机更少的抽象层
    Docker利用的是宿主机的内核,虚拟机使用的是Guest OS
    在这里插入图片描述
    所以,新建容器不需要像虚拟机一样重新加载一个操作系统的内核,避免引导性操作;虚拟机是加载Guest OS,分钟级别,而docker利用宿主机的内核,省略复杂的过程,秒级!

2.Docker常用命令

2.1帮助命令
docker version          #显示docker版本信息
docker info             #显示docker的系统信息,包括镜像和容器数量
docker 命令 --help      #万能帮助命令

帮助命令的地址:https://docs.docker.com/engine/reference/run/

2.2镜像命令
  • 查看镜像
docker images

在这里插入图片描述
可选项

-a,--all                #列出所有镜像
-q,--quiet              #只显示ID

在这里插入图片描述

  • 搜索镜像
docker search 镜像

在这里插入图片描述
也可以通过网站:https://registry.hub.docker.com/搜索
可选项

--filter=STARS=3000       #收藏大于3000

在这里插入图片描述

  • 下载镜像
docker pull 镜像
[root@192 wjy]# docker pull mysql       #下载mysql 
Using default tag: latest               #没有指定默认下载最新
latest: Pulling from library/mysql
ffbb094f4f9e: Pull complete            #分层下载,Docker image的核心 联合文件系统
df186527fc46: Pull complete 
fa362a6aa7bd: Pull complete 
5af7cb1a200e: Pull complete 
949da226cc6d: Pull complete 
bce007079ee9: Pull complete 
eab9f076e5a3: Pull complete 
8a57a7529e8d: Pull complete 
b1ccc6ed6fc7: Pull complete 
b4af75e64169: Pull complete 
3aed6a9cd681: Pull complete 
23390142f76f: Pull complete 
Digest: sha256:ff9a288d1ecf4397967989b5d1ec269f7d9042a46fc8bc2c3ae35458c1a26727      #签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest   #真实地址

PS:(docker pull mysql == docker pull docker.io/library/mysql:latest)

指定版本下载
在这里插入图片描述
存在以上版本

docker pull mysql:5.7
  • 删除镜像
docker rmi -f imageID          #常用
docker rmi -f imageID1 imageID2 imageID3      #删除多个
docker rmi -f $(docker images -aq)     #删除全部

在这里插入图片描述

2.3容器命令

说明:有了镜像才可以创建容器,下载一个centos镜像来进行学习

docker pull centos

在这里插入图片描述

  • 新建容器并启动
docker run [-可选项] image

#参数说明
--name="容器名字"
-d            后台方式运行
-it           交互方式运行,进入容器查看内容
-p            指定容器的端口
	-p 主机端口:容器端口
	-p 容器端口
-P            随机指定端口

例:启动并进入容器
在这里插入图片描述
退出命令:exit

  • 列出所有的运行的容器
docker ps

-a #列出当前正在运行的容器+带出历史运行过的容器
-n=? #显示最近创建的容器(个数)
-q #只显示编号

在这里插入图片描述

  • 退出容器
exit      #直接容器停止并退出
Ctrl+P+Q  #不停止退出          (这种退出用ps可查看)
  • 删除容器
docker rm 容器ID
docker rm -f $(docker ps -aq)  #删除全部
docker ps -a -q | xargs docker rm
-f   #强制删除
  • 启动和停止容器的操作
docker start ID
docker restart ID
docker stop ID
docker kill ID 
  • 常用容器命令
    (1)后台启动
docker run -d centos
#使用docker ps时发现没有启动,docker容器使用后台运行时,必须要有前台进程,如果发现没有前台应用,会自动停止

(2)日志查看

docker logs [-可选项]
docker logs -tf --tail 10 04a2b7cce655

--tail 10   #显示条数
-tf   #显示全部信息

在这里插入图片描述(3)查看容器中进程信息

docker top ID

(4)查看容器元数据(内部进程信息)

docker inspect ID

(5)进入当前正在运行的容器
通常容器都是后台方式运行的,当我们想修改配置时,需要进入容器

#方式1
docker exec -it ID /bin/bash    #进入容器=打开新终端
#方式2
docker attach ID                #进入容器=进入正在执行的终端

(6)从容器内拷贝文件到主机上

docker cp ID:/容器地址/文件名 /主机地址
#进入容器
[root@192 桌面]# docker attach eef0b7c52781
[root@eef0b7c52781 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
#进入某文件夹
[root@eef0b7c52781 /]# cd home/
[root@eef0b7c52781 home]# ls
#创建Java文件
[root@eef0b7c52781 home]# touch wjy.java
[root@eef0b7c52781 home]# ls
wjy.java
#退出
[root@eef0b7c52781 home]# exit
exit
#查看桌面
[root@192 桌面]# ll
总用量 0
[root@192 桌面]# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS                      PORTS     NAMES
eef0b7c52781   centos         "/bin/bash"   4 minutes ago   Exited (0) 30 seconds ago             reverent_bose
[root@192 桌面]# pwd
/home/wjy/桌面
#拷贝文件到主机
[root@192 桌面]# docker cp eef0b7c52781:/home/wjy.java /home/wjy/桌面
[root@192 桌面]# ls
wjy.java

docker命令十分多,以上为常用的docker命令
学习来源:https://www.bilibili.com/video/BV1og4y1q7M4?p=1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值