Docker镜像的基本命令

2022-12-07  本文已影响0人  arkliu

镜像是什么

镜像是一种轻量级,可执行的独立软件包,用来打包软件运行环境,和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码,运行时,库,环境变量和配置文件。
如何获得镜像

帮助命令

docker version  //显示docker的版本信息
docker info  // 显示docker的系统信息
docker 命令  --help   // 万能命令

docker服务

systemctl start docker  启动docker服务
systemctl stopdocker  停止docker服务
systemctl restartdocker  重启docker服务
systemctl status docker  查看docker服务状态
systemctl enable docker  设置开机启动docker服务

镜像命令

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

lh@lh-pc:~$ docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   13 months ago   13.3kB

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

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

image.png

docker search 搜索镜像

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

image.png

docker pull下载镜像

lh@lh-pc:~$ docker pull mysql
Using default tag: latest  # 如果不写tag 默认就是latest
latest: Pulling from library/mysql
feec22b5b798: Pull complete   # 分层下载docker image 的核心,联合文件系统
3b33952322b1: Pull complete 
8632ee03bb1c: Pull complete 
636ccd115361: Pull complete 
b07c8fac8eea: Pull complete 
e44c54db9c14: Pull complete 
cf9c45749101: Pull complete 
9f2fa3febc47: Pull complete 
44d5e1d3c311: Downloading  44.26MB/55.07MB
bb3db2c5d8ec: Download complete 
e0ead729abd9: Download complete 
44d5e1d3c311: Downloading   44.8MB/55.07MB
44d5e1d3c311: Pull complete 
bb3db2c5d8ec: Pull complete 
e0ead729abd9: Pull complete 
Digest: sha256:25aace9734db96ae09c24c6a2eeb6db4720c41d493de352eb76007eddf437fbe  # 签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest  # 真实地址

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


# pull指定版本  docker pull mysql:5.7
lh@lh-pc:~$ docker pull mysql:5.7
5.7: Pulling from library/mysql
9a0b9cd2dfe6: Pull complete 
c637408ee7df: Pull complete 
4c517093c276: Pull complete 
301cc7d68c2a: Pull complete 
17ca9bf9231a: Pull complete 
9ae101e5c786: Waiting 
04baa409344e: Download complete 

删除镜像

删除单个镜像  docker rmi  -f 镜像id
docker rmi  -f feb5d9fea6a5

删除多个镜像
 docker rmi  -f 镜像id  镜像id  镜像id 

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

容器命令

我们有了镜像,才可以创建容器,下载一个centos镜像来测试学习

docker pull centos

新建容器并启动

docker run [可选参数]  image

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


#测试  启动并进入容器
lh@lh-pc:~$ docker run -it centos /bin/bash
[root@cd375b66a2fd /]# 

# 从容器中退出到主机
[root@cd375b66a2fd /]# exit
exit
lh@lh-pc:~$ 

列出所有容器

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


lh@lh-pc:~$ docker ps  #列出当前正在运行的容器
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
lh@lh-pc:~$ docker ps -a  #列出正在运行的+历史运行的所有容器
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS                          PORTS     NAMES
cd375b66a2fd   centos         "/bin/bash"   5 minutes ago    Exited (0) About a minute ago             practical_jennings
89a61014e7cc   centos         "/bin/bash"   54 minutes ago   Exited (255) 6 minutes ago                laughing_ishizaka
cd81f29e33f2   centos         "/bin/bash"   55 minutes ago   Exited (0) 55 minutes ago                 competent_hypatia
7d30f8f79402   feb5d9fea6a5   "/hello"      2 hours ago      Exited (0) 2 hours ago                    musing_wescoff
f3d0ae4e9b9e   feb5d9fea6a5   "/hello"      2 hours ago      Exited (0) 2 hours ago                    amazing_mahavira


lh@lh-pc:~$ docker ps -n=1
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS                     PORTS     NAMES
cd375b66a2fd   centos    "/bin/bash"   13 minutes ago   Exited (0) 9 minutes ago             practical_jennings


lh@lh-pc:~$ docker ps -aq
cd375b66a2fd
89a61014e7cc
cd81f29e33f2
7d30f8f79402
f3d0ae4e9b9e

退出容器

exit    直接容器停止并退出
ctrl+p+q   容器不停止退出

删除容器

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

lh@lh-pc:~$ docker rm -f $(docker ps -aq)
3040e5d57bd6
3c6a0295e9f2
cd375b66a2fd
89a61014e7cc
cd81f29e33f2
7d30f8f79402
f3d0ae4e9b9e
lh@lh-pc:~$ docker ps -aq
lh@lh-pc:~$

启动和停止容器

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

常用的其他命令

后台启动容器

# docker run -d 镜像名
docker run -d centos

问题:docker ps发现centos容器停止了
#常见的坑
docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止。

上一篇下一篇

猜你喜欢

热点阅读