Docker常见命令

Docker基础命令图

查看源图像

Docker常用命令

帮助命令

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

镜像命令

docker images---查看所有本地镜像

(base) gongz@zhiweideMacBook-Pro ~ % docker images      
REPOSITORY          TAG       IMAGE ID       CREATED        SIZE
secfa/docker-awvs   latest    b94c1855ce6f   6 weeks ago    1.14GB
tomsik68/xampp      latest    2d7ddabdb0d2   4 months ago   1.37GB

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

docker search---搜索镜像

NAME                           DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                          MySQL is a widely used, open-source relation…   12576     [OK]       
mariadb                        MariaDB Server is a high performing open sou…   4834      [OK]       
percona                        Percona Server is a fork of the MySQL relati…   576       [OK]    

# 可选项,通过搜索来过滤
	--filter=stars=3000			# 搜索结果stars大于3000

docker pull---下载镜像

[root@certain-fiber-1 ~]# docker pull mysql
Using default tag: latest			# 不写tag默认为latest
latest: Pulling from library/mysql
c32ce6654453: Pull complete 	# 分层下载,docker image的核心
415d08ee031a: Pull complete 
7a38fec2542f: Pull complete 
352881ee8fe9: Pull complete 
b8e20da291b6: Pull complete 
66c2a8cc1999: Pull complete 
d3a3a8e49878: Pull complete 
e33a48832bec: Pull complete 
410b942b8b28: Pull complete 
d5323c9dd265: Pull complete 
3212737f31c0: Pull complete 
d0032d4b0dc5: Pull complete 
Digest: sha256:a0805d37d4d298bd61e0dfa61f0ddf6f4680b453fa25d7aad420485a62417eab	#签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest	# 真实地址

# 等价于它
docker pull mysql
docker pull docker.io/library/mysql:latest

# 指定版本
[root@certain-fiber-1 ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
c32ce6654453: Already exists 
415d08ee031a: Already exists 
7a38fec2542f: Already exists 
352881ee8fe9: Already exists 
b8e20da291b6: Already exists 
66c2a8cc1999: Already exists 
d3a3a8e49878: Already exists 
172aabfba65c: Pull complete 
fea17d0b1d1e: Pull complete 
fff7f5411ca9: Pull complete 
c33d43428e07: Pull complete 
Digest: sha256:16e159331007eccc069822f7b731272043ed572a79a196a05ffa2ea127caaf67
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7

docker rmi---删除镜像

[root@certain-fiber-1 ~]# docker rmi -f 容器id		# 删除指定镜像
[root@certain-fiber-1 ~]# docker rmi -f 容器id 容器id 容器id		# 删除多个镜像

[root@certain-fiber-1 ~]# docker rmi -f `docker images -aq`		# 删除全部镜像
[root@certain-fiber-1 ~]# docker rmi -f $(docker images -aq) 	
# `命令`或$(命令)的结果会作为参数

容器命令

通过镜像创建容器,下载centos镜像,用作练习

[root@certain-fiber-1 ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
a1d0c7532777: Pull complete 
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest

新建容器并启动

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

# 参数说明
--name="Name"			容器名称,用于区分
-d								后台运行
-it								使用交互方式运行,进入容器命令行
-p								指定容器端口映射	-p 8080:8080
		-p ip:主机端口:容器端口
		-p 主机端口:容器端口(常用)
		-p 容器端口
		容器端口
-P(大写)								随机指定容器内的端口映射

# 测试
[root@certain-fiber-1 ~]# docker run -it centos /bin/bash
[root@a929fe9dac59 /]# ls
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@a929fe9dac59 /]# exit
exit
[root@certain-fiber-1 ~]# ls
downloads                         trojan-go
id_rsa.pub                        trojan-go-access.log

查看容器

# docker ps
无参	# 列出当前正在运行的容器
-a	# 列出所有的容器
-n=?	# 显示最近创建的容器
-q		# 只显示容器编号


[root@certain-fiber-1 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@certain-fiber-1 ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS                      PORTS     NAMES
a929fe9dac59   centos         "/bin/bash"              58 seconds ago   Exited (0) 50 seconds ago             lucid_montalcini
88c19d2bb06f   5ca608c9a84f   "/bin/sh -c 'echo 12…"   4 months ago     Exited (143) 2 months ago             great_taussig
4eb56f5ec122   87a94228f133   "/docker-entrypoint.…"   6 months ago     Exited (0) 4 months ago               nginx_test
02016aea5ac2   d9c7999da701   "/run.sh"                7 months ago     Exited (137) 6 months ago             strange_lovelace

退出容器

exit	# 直接容器停止并推出(没有-d时)

Ctrl+P再CTRL+Q	# 容器不停止退出
[root@certain-fiber-1 ~]# docker run -it centos /bin/bash
Ctrl+P再CTRL+Q
[root@certain-fiber-1 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
be609317788e   centos    "/bin/bash"   37 seconds ago   Up 36 seconds             condescending_kepler

删除容器

docker rm 容器id			# 删除指定,不能删除运行态,加-f则强制删除
docker rm -f `docker ps -aq`			# 删除所有
docker ps -a -q | xargs docker rm # 用|和xargs删除所有

启动和停止容器

docker start 容器id			# 启动容器
docker restart 容器id		# 重启容器
docker stop 容器id			# 停止容器
docker kill 容器id			# 强制停止容器

常用其他命令

后台启动容器

# docker run -d 容器名称

[root@certain-fiber-1 ~]# docker run -d centos
bf0992f1a2a7223c573f21854038c86ce06adb02defdf1ba5587a5ab381e3b7d
[root@certain-fiber-1 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

# 问题:ps发现没有容器运行

# 常见的问题:docker容器后台运行时,必须要有前台进程,docker发现没有就会自动停止
# nginx,容器启动后,发现自己没有提供服务,就会立刻停止容器

查看日志

# docker logs -t -f --tail 数字 容器id

-tf			# 显示日志,t是加上时间戳,f是显示输出的日志
--tail 数字	# 显示指定行数的日志

查看容器中的进程信息

# docker top 容器id

查看镜像或容器底层数据(重要)

docker inspect 容器id|镜像id

进入正在运行的命令

# 通常以后台运行容器,修改配置时,就要进入容器

# 命令
# docker exec -it 容器id /bin/bash
# 进入容器,开启一个新的终端

# 方式二
# docker attach 容器id
# 进入容器正在执行的终端,不会启动新进程

从容器内拷贝文件

docker cp 容器id:容器内路径 目的主机路径
# 这段命令是在外界运行的,用于将容器内文件拿出,容器运行状态无所谓

挂载本机目录至容器

# docker容器启动时,若要挂载主机一个目录,使用-v参数。
docker run -it -v /test:/soft centos /bin/bash
# 把宿主机/test目录挂载到容器的/soft目录。
posted @ 2022-05-16 22:36  宁宁鸡a  阅读(55)  评论(1编辑  收藏  举报