Docker入门第四章

Docker的常用命令


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

帮助文档的地址: https://docs.docker.com/engine/reference/commandline/docker/

Docker的镜像命令

docker images 查看本地主机所有的镜像

[root@bogon ~]# docker images 
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d1165f221234   5 months ago   13.3kB

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

#可选项
	-a,--all	#列出所有镜像
    -q,--quiet	#只显示镜像的id

docker search 搜索镜像

[root@bogon ~]# docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   11263     [OK]       
mariadb                           MariaDB Server is a high performing open sou…   4278      [OK]       
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   836                  [OK]

#可选项,通过搜索来过滤
--filter=STARS=3000		#搜索出来的镜像就是STARS大于3000的

[root@bogon ~]# docker search mysql --filter=STARS=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   11263     [OK]       
mariadb   MariaDB Server is a high performing open sou…   4278      [OK] 

[root@bogon ~]# docker search mysql --filter=STARS=5000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   11263     [OK] 

docker pull 下载镜像

# 下载镜像  docker pull 镜像名[:tag]
[root@bogon ~]# docker pull mysql
Using default tag: latest	#如果不写tag,默认就是latest
latest: Pulling from library/mysql
33847f680f63: Pull complete  #分层下载,docker image的核心	联合文件系统
5cb67864e624: Pull complete 
1a2b594783f5: Pull complete 
b30e406dd925: Pull complete 
48901e306e4c: Pull complete 
603d2b7147fd: Pull complete 
802aa684c1c4: Pull complete 
715d3c143a06: Pull complete 
6978e1b7a511: Pull complete 
f0d78b0ac1be: Pull complete 
35a94d251ed1: Pull complete 
36f75719b1a9: Pull complete 
Digest: sha256:8b928a5117cf5c2238c7a09cd28c2e801ac98f91c3f8203a8938ae51f14700fd		#签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest	#真实地址
 
#等价于它
docker pull mysql
docker pull docker.io/library/mysql:latest

#指定版本下载
[root@bogon ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
33847f680f63: Already exists 
5cb67864e624: Already exists 
1a2b594783f5: Already exists 
b30e406dd925: Already exists 
48901e306e4c: Already exists 
603d2b7147fd: Already exists 
802aa684c1c4: Already exists 
5b5a19178915: Pull complete 
f9ce7411c6e4: Pull complete 
f51f6977d9b2: Pull complete 
aeb6b16ce012: Pull complete 
Digest: sha256:be70d18aedc37927293e7947c8de41ae6490ecd4c79df1db40d1b5b5af7d9596
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7

docker rmi 删除镜像

#删除指定的镜像
[root@bogon ~]# docker rmi -f 8cf625070931  #删除mysql5.7的镜像文件
Untagged: mysql:5.7
Untagged: mysql@sha256:be70d18aedc37927293e7947c8de41ae6490ecd4c79df1db40d1b5b5af7d9596
Deleted: sha256:8cf6250709314f2fcd2669e8643f5d3bdebfe715bddb63990c8c96e5d261d6fc
Deleted: sha256:452fe6896278c26338d547f8d1092011d923785247c46629b374d3477fe28c84
Deleted: sha256:bd40bf60af5d06e6b93eaf5a648393d97f70998faa3bfa1b85af55b5a270cb35
Deleted: sha256:c43e9e7d1e833650e0ed54be969d6410efa4e7fa6e27a236a44a2b97e412ee93
Deleted: sha256:70f18560bbf492ddb2eadbc511c58c4d01e51e8f5af237e3dbb319632f16335b

[root@bogon ~]# docker images	#可以看到已经删除mysql5.7了
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
mysql         latest    c60d96bd2b77   3 weeks ago    514MB
hello-world   latest    d1165f221234   5 months ago   13.3kB

#删除多个镜像

docker rmi -f 镜像ID 镜像ID 镜像ID 镜像ID

#删除全部镜像
[root@bogon ~]# docker rmi -f $(docker images -aq)   #  $()可以传入参数,将docker images -aq 查询所有image的镜像id
Untagged: mysql:latest
Untagged: mysql@sha256:8b928a5117cf5c2238c7a09cd28c2e801ac98f91c3f8203a8938ae51f14700fd
Deleted: sha256:c60d96bd2b771a8e3cae776e02e55ae914a6641139d963defeb3c93388f61707
Deleted: sha256:5c8c91273faab368a6d659156f2569fa9f40b0e0139222fdf9eef073df4b3797
Deleted: sha256:33d8196a776f42a16f10395b66f10f91443b1fb194bca2a9b8dfb0deff5babb8
Deleted: sha256:3ec63323025213e3cabf17ac7933506dc5520ec49226a9764418f77ea60d35c8
Deleted: sha256:1f129b005b51b049ac84ed0775b82096d480b7d9308a9a137697f37346562266
Deleted: sha256:80ed209bd0434faa1ce31fbaab8508124dddf8f6502c5736ee4b8e46697a8477
Deleted: sha256:e53f0d35c77064014a5c1c1332d84d5f421a58418ca9c208bc470691c0e483e3
Deleted: sha256:75209fb28131d5537e73406ff0f6f508f3eb1f4d86c43d1d16df76fd28b9cc35
Deleted: sha256:34a01bee1a62a01034ffc3da48a3cb45716a0cf2e264c26663e02288e81c7ec2
Deleted: sha256:9f8bca37a56017fd3462d4fc329b0b20f97c2dd4c15e55a8e6ad1c023ab5552b
Deleted: sha256:c8a6e3f9a2412c28cd8c48e2c7bed5e7fbaa0ab6649add2dbe8641cb29b967f6
Deleted: sha256:0a26eacdbd862e75d064d817e8a5bcf5e060c2680c10f77ffa52757c0b8c3328
Deleted: sha256:814bff7343242acfd20a2c841e041dd57c50f0cf844d4abd2329f78b992197f4
Untagged: hello-world:latest
Untagged: hello-world@sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38
Deleted: sha256:d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726

[root@bogon ~]# docker images	#可以看到已经删除全部镜像了
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

Docker的容器命令

说明:有了镜像才可以创建容器,下载一个centos镜像来测试

[root@bogon ~]# docker pull centos		#下载centos镜像
Using default tag: latest
latest: Pulling from library/centos
7a0437f04f83: Pull complete 
Digest: sha256:5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest


[root@bogon ~]# docker images		#下载完成
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
centos       latest    300e315adb2f   8 months ago   209MB

docker run image 新建容器并启动

docker run [可选参数]	image

#参数说明
--name="Name"	容器名称 tomcat01 tomcat02,用来区分容器
-d				后台方式运行
-it				使用交互方式运行,进入容器查看内容
-p				指定容器的端口 -p 8080:8080
	#-p有四种使用方式
	-p  ip:主机端口:容器端口
	-p	主机端口:容器端口
	-p	容器端口
	容器端口

-p	随机指定端口


#测试,启动并进入容器
[root@bogon ~]# docker run -it centos /bin/bash

#如果出现WARNING: IPv4 forwarding is disabled. Networking will not work.
解决办法:
vi /etc/sysctl.conf
net.ipv4.ip_forward=1  #添加这段代码

然后重启虚拟机

#查看是否修改成功 (备注:返回1,就是成功)
[root@docker-node2 ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1


#从容器中退回到主机
[root@c8eb77459317 /]# exit 
exit
[root@lvshihao /]# ls    #[root@bogon ~]变成[root@lvshihao /]是因为我修改了一下hostname(也就是主机名)
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

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

#docker ps 命令
        	#列出当前正在运行的容器
	-a	#列出当前正在运行的容器,包括历史运行过的容器
	-n=?	#显示最近创建的容器 ?代表显示最近创建的前几个容器
	-q	#只显示容器的编号

[root@lvshihao /]# docker ps	#列出当前正在运行的容器
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

[root@lvshihao /]# docker ps -a	#列出当前正在运行的容器,包括历史运行过的容器
CONTAINER ID   IMAGE          COMMAND       CREATED             STATUS                         PORTS     NAMES
c8eb77459317   centos         "/bin/bash"   18 minutes ago      Exited (0) 15 minutes ago                pedantic_goldberg
3fd14ec500c4   centos         "/bin/bash"   29 minutes ago      Exited (1) 21 minutes ago                fervent_borg
9186fe713fdd   d1165f221234   "/hello"      About an hour ago   Exited (0) About an hour ago             intelligent_bouman

退出容器

exit			#直接容器停止并退出
Ctrl + P + Q 	#容器不停止退出

docker rm 删除容器

docker rm 容器id	#删除指定容器,不能删除正在运行的容器,如果要强制删除rm -f
docker rm -f $(docker ps -aq)	#删除所有容器
docker ps -a -q|xargs docker rm -f	#删除所有容器

 启动和停止容器的操作

docker start 容器id	#启动容器
docker restart 容器id	#重启容器
odcker stop	容器id	#停止当前正在运行的的容器
docker kill	容器id	#强制停止当前容器

注:”如果发现你的Linux系统终端里的root@localhost变成root@bogon的主机名“ 

解决办法:

[root@bogon ~]# hostname localhost
[root@bogon ~]# su
[root@localhost ~]# 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

作者:吕世昊

个性签名:学习如逆水行舟,不进则退!

如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

原文地址:https://www.cnblogs.com/lvshihao/p/15140005.html