Docker的学习(一)

docker中文资源网

centos的docker安装官网指导

狂神视频
在这里插入图片描述
1:首先卸载旧的版本(如果之前安装过的话)
在这里插入图片描述
2:安装需要的包

3:安装镜像仓库

这里我们不使用官方的,使用下面这个阿里云的,比较块
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
在这里插入图片描述
4:清空缓存
yum makecache fast
centos8去掉fast

在这里插入图片描述
5:安装docker引擎
yum install docker-ce docker-ce-cli containerd.io

6:启动docker
systemctl start docker

7:查看版本
在这里插入图片描述
8:docker run hello-world

在这里插入图片描述
9:如何卸载docker?
在这里插入图片描述
在这里插入图片描述

配置阿里云的镜像加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://mko3wqjb.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

docker run hello-world的执行流程

在这里插入图片描述

Docker是怎么工作做的?

Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,通过Socket在客户端进行访问。
Docker-Server收到Docker-Client的指令就会执行这个指令。

在这里插入图片描述

Docker为什么比虚拟机块?

1)、Docker有这比虚拟机更少的抽象层,由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker上的程序直接使用的都是实际物理机上的硬件资源,因此在CPU、内存利用率上有明显的优势。
2)、Docker利用的是宿主机的内核,而不需要使用Guest OS 因此 ,当 新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核,而避免引寻 ,加载操作系统内核返回个比较费事费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载Guest OS,返回的新建的过程是分钟级别,而docker直接使用的是宿主机上的操作系统,则省略了返回这个的过程,因此新建一个docker容器只需要几秒钟。
在这里插入图片描述

在这里插入图片描述

Docker的基本命令?

  • docker version:查看版本信息
  • docker info:显示docker的系统信息(包括镜像和容器的数量)
  • docker help:docker的帮助命令

查询地址

镜像命令

docker images

[root@iZwz9hv1phm24s3jicy8x1Z docker]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    feb5d9fea6a5   6 months ago   13.3kB

REPOSITORY:镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像的id
CREATED:镜像的创建时间
SIZE:镜像的大小

-q:只显示id
[root@iZwz9hv1phm24s3jicy8x1Z docker]# docker images -q
feb5d9fea6a5

搜索镜像
docker search

[root@iZwz9hv1phm24s3jicy8x1Z docker]# docker search mysql
NAME                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                            MySQL is a widely used, open-source relation…   12401     [OK]       
mariadb                          MariaDB Server is a high performing open sou…   4774      [OK]       
mysql/mysql-server               Optimized MySQL Server Docker images. Create…   917                  [OK]
percona                          Percona Server is a fork of the MySQL relati…   574       [OK]       
phpmyadmin                       phpMyAdmin - A web interface for MySQL and M…   499       [OK]       
mysql/mysql-cluster              Experimental MySQL Cluster Docker images. Cr…   93                   
centos/mysql-57-centos7          MySQL 5.7 SQL database server                   92                   
bitnami/mysql                    Bitnami MySQL Docker Image                      69                   [OK]
ubuntu/mysql                     MySQL open source fast, stable, multi-thread…   29                   
circleci/mysql                   MySQL is a widely used, open-source relation…   25                   
mysql/mysql-router               MySQL Router provides transparent routing be…   23                   
centos/mysql-56-centos7          MySQL 5.6 SQL database server                   22                   
google/mysql                     MySQL server for Google Compute Engine          21                   [OK]
vmware/harbor-db                 Mysql container for Harbor                      10                   
mysqlboy/mydumper                mydumper for mysql logcial backups              3                    
mysqlboy/docker-mydumper         docker-mydumper containerizes MySQL logical …   3                    
ibmcom/mysql-s390x               Docker image for mysql-s390x                    2                    
bitnami/mysqld-exporter                                                          2                    
cimg/mysql                                                                       0                    
ibmcom/tidb-ppc64le              TiDB is a distributed NewSQL database compat…   0                    
mysqlboy/elasticsearch                                                           0                    
mysqleatmydata/mysql-eatmydata                                                   0                    
mysql/ndb-operator               MySQL NDB Operator for Kubernetes               0                    
mysql/mysql-operator             MySQL Operator for Kubernetes                   0                    
mirantis/mysql 

filter筛选stars大于4000的

[root@iZwz9hv1phm24s3jicy8x1Z docker]# docker search mysql --filter=STARS=4000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   12401     [OK]       
mariadb   MariaDB Server is a high performing open sou…   4774      [OK] 
  • docker pulldocker下载镜像

查看帮助信息

[root@iZwz9hv1phm24s3jicy8x1Z docker]# docker pull --help

Usage:  docker pull [OPTIONS] NAME[:TAG|@DIGEST]

Pull an image or a repository from a registry

Options:
  -a, --all-tags                Download all tagged images in the repository
      --disable-content-trust   Skip image verification (default true)
      --platform string         Set platform if server is multi-platform capable
  -q, --quiet                   Suppress verbose output

下载镜像

[root@iZwz9hv1phm24s3jicy8x1Z docker]# docker pull mysql
Using default tag: latest  //不指定的话就是默认最新的版本
latest: Pulling from library/mysql
72a69066d2fe: Pull complete //分层下载
93619dbc5b36: Pull complete 
99da31dd6142: Pull complete 
626033c43d70: Pull complete 
37d5d7efb64e: Pull complete 
ac563158d721: Pull complete 
d2ba16033dad: Pull complete 
688ba7d5c01a: Pull complete 
00e060b6d11d: Pull complete 
1c04857f594f: Pull complete 
4d7cfa90e6ea: Pull complete 
e0431212d27d: Pull complete 
Digest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709//签名标志
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest //真实地址

下面两个命令是一样的
docker pull mysql
docker pull docker.io/library/mysql:latest

指定版本下载

[root@iZwz9hv1phm24s3jicy8x1Z docker]# docker pull mysql:5.7
5.7: Pulling from library/mysql
72a69066d2fe: Already exists //联合文件系统,已经存在的就不会继续下载了,可以直接公用
93619dbc5b36: Already exists 
99da31dd6142: Already exists 
626033c43d70: Already exists 
37d5d7efb64e: Already exists 
ac563158d721: Already exists 
d2ba16033dad: Already exists 
0ceb82207cd7: Pull complete 
37f2405cae96: Pull complete 
e2482e017e53: Pull complete 
70deed891d42: Pull complete 
Digest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7

查看刚才安装的镜像

[root@iZwz9hv1phm24s3jicy8x1Z ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
mysql         5.7       c20987f18b13   3 months ago   448MB
mysql         latest    3218b38490ce   3 months ago   516MB
hello-world   latest    feb5d9fea6a5   6 months ago   13.3kB

  • 删除镜像
  • docker rmi -f c20987f18b13
[root@iZwz9hv1phm24s3jicy8x1Z ~]# docker rmi -f c20987f18b13
Untagged: mysql:5.7
Untagged: mysql@sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
Deleted: sha256:c20987f18b130f9d144c9828df630417e2a9523148930dc3963e9d0dab302a76
Deleted: sha256:6567396b065ee734fb2dbb80c8923324a778426dfd01969f091f1ab2d52c7989
Deleted: sha256:0910f12649d514b471f1583a16f672ab67e3d29d9833a15dc2df50dd5536e40f
Deleted: sha256:6682af2fb40555c448b84711c7302d0f86fc716bbe9c7dc7dbd739ef9d757150
Deleted: sha256:5c062c3ac20f576d24454e74781511a5f96739f289edaadf2de934d06e910b92

[root@iZwz9hv1phm24s3jicy8x1Z ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
mysql         latest    3218b38490ce   3 months ago   516MB
hello-world   latest    feb5d9fea6a5   6 months ago   13.3kB

递归删除所有的镜像
docker rmi -f $(docker images -aq)

[root@iZwz9hv1phm24s3jicy8x1Z ~]# docker rmi -f $(docker images -aq)
Untagged: mysql:latest
Untagged: mysql@sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709
Deleted: sha256:3218b38490cec8d31976a40b92e09d61377359eab878db49f025e5d464367f3b
Deleted: sha256:aa81ca46575069829fe1b3c654d9e8feb43b4373932159fe2cad1ac13524a2f5
Deleted: sha256:0558823b9fbe967ea6d7174999be3cc9250b3423036370dc1a6888168cbd224d
Deleted: sha256:a46013db1d31231a0e1bac7eeda5ad4786dea0b1773927b45f92ea352a6d7ff9
Deleted: sha256:af161a47bb22852e9e3caf39f1dcd590b64bb8fae54315f9c2e7dc35b025e4e3
Deleted: sha256:feff1495e6982a7e91edc59b96ea74fd80e03674d92c7ec8a502b417268822ff
Deleted: sha256:8805862fcb6ef9deb32d4218e9e6377f35fb351a8be7abafdf1da358b2b287ba
Deleted: sha256:872d2f24c4c64a6795e86958fde075a273c35c82815f0a5025cce41edfef50c7
Deleted: sha256:6fdb3143b79e1be7181d32748dd9d4a845056dfe16ee4c827410e0edef5ad3da
Deleted: sha256:b0527c827c82a8f8f37f706fcb86c420819bb7d707a8de7b664b9ca491c96838
Deleted: sha256:75147f61f29796d6528486d8b1f9fb5d122709ea35620f8ffcea0e0ad2ab0cd0
Deleted: sha256:2938c71ddf01643685879bf182b626f0a53b1356138ef73c40496182e84548aa
Deleted: sha256:ad6b69b549193f81b039a1d478bc896f6e460c77c1849a4374ab95f9a3d2cea2
Untagged: hello-world:latest
Untagged: hello-world@sha256:bfea6278a0a267fad2634554f4f0c6f31981eea41c553fdf5a83e95a41d40c38
Deleted: sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412



[root@iZwz9hv1phm24s3jicy8x1Z ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

容器命令

有了镜像才可以创建容器,linux操作系统,我们下载一个centos镜像来学习。

  • docker pull centos

新建容器并启动。这里要给容器起一个名字。

docker run [可选参数] image

--name="Name" 给容器起一个名字,
-d 后台方式运行
-it:使用交互方式运行
-p(小写):指定容器端口
	-p ip:主机端口:容器端口
	-p 主机端口:容器端口(常用的)
	-p:容器端口
	容器端口
-P(大写):随机指定端口


可以看到这个主机名就是镜像id
在这里插入图片描述
在这里插入图片描述
exit:退出当前容器

在这里插入图片描述
查看正在运行的容器

  • docker ps
  • -n=?:最近运行的容器
  • a查看包含曾经运行的容器
  • -q:只显示容器的编号
[root@iZwz9hv1phm24s3jicy8x1Z /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@iZwz9hv1phm24s3jicy8x1Z /]# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS                     PORTS     NAMES
3ae8df6cfa99   centos         "/bin/bash"   4 minutes ago   Exited (0) 2 minutes ago             youthful_napier
b3ba39275abf   feb5d9fea6a5   "/hello"      6 hours ago     Exited (0) 6 hours ago               youthful_hypatia
[root@iZwz9hv1phm24s3jicy8x1Z /]# docker ps -n=1
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS                     PORTS     NAMES
3ae8df6cfa99   centos    "/bin/bash"   8 minutes ago   Exited (0) 6 minutes ago             youthful_napier
[root@iZwz9hv1phm24s3jicy8x1Z /]# docker ps -n=3
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS                     PORTS     NAMES
3ae8df6cfa99   centos         "/bin/bash"   8 minutes ago   Exited (0) 6 minutes ago             youthful_napier
b3ba39275abf   feb5d9fea6a5   "/hello"      6 hours ago     Exited (0) 6 hours ago               youthful_hypatia
[root@iZwz9hv1phm24s3jicy8x1Z /]# docker ps -aqn=3
3ae8df6cfa99
b3ba39275abf
  • 退出容器
  • exit:容器退出并且停止
  • ctrl+p+q:容器不停止并且退出。
[root@iZwz9hv1phm24s3jicy8x1Z /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@iZwz9hv1phm24s3jicy8x1Z /]# docker run -it centos /bin/bash
[root@9c40b2d86127 /]# [root@iZwz9hv1phm24s3jicy8x1Z /]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
9c40b2d86127   centos    "/bin/bash"   24 seconds ago   Up 23 seconds             hopeful_lumiere
[root@iZwz9hv1phm24s3jicy8x1Z /]# 

  • 删除容器
  • docker rm 容器id:删除指定的容器,不能删除正在运行的容器,除非带-f
  • docker rm -f $(docker ps -aq):递归删除所有的容器
  • docker ps -a -q|xargs docker rm:删除所有的容器

启动和停止容器的操作

  • docker start 容器id:启动
  • docker restart 容器id重启
  • docker stop 容器id:停止当前正在运行的
  • docker kill 容器id:强制停止当前容器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北海冥鱼未眠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值