狂神视频
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 pull
docker下载镜像
查看帮助信息
[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
:删除指定的容器,不能删除正在运行的容器,除非带-fdocker rm -f $(docker ps -aq)
:递归删除所有的容器docker ps -a -q|xargs docker rm
:删除所有的容器
启动和停止容器的操作
docker start 容器id
:启动docker restart 容器id
重启docker stop 容器id
:停止当前正在运行的docker kill 容器id
:强制停止当前容器