初识docker容器----容器常用命令

docker的常用命令


帮助命令

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

帮助文档地址:docker | Docker Documentation

镜像命令

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

# 查看本地所有镜像
[root@192 ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   12 months ago   13.3kB
​
# 解释
REPOSITORY # 镜像的仓库源
TAG # 镜像的标签
IMAGE ID # 镜像的id
CREATED # 镜像的创建时间
SIZE # 镜像的大小
​
# 可选项
-a --all # 列出所有镜像
-q --quite # 只显示镜像的id
​
docker images -aq 

# 搜索
docker search
​
[root@192 ~]# docker search mysql
​
# 可选项,通过搜索来过滤(搜索STARS>3000以上的)
--filter=STARS=3000 
​
[root@192 ~]# docker search mysql --filter=STARS=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   13234     [OK]       
mariadb   MariaDB Server is a high performing open sou…   5062      [OK]    

​docker pull下载镜像

# docker pull 镜像名[:tag]
​
[root@192 var]# docker pull mysql
Using default tag: latest # 如果不写tag,默认就是latest
latest: Pulling from library/mysql
295ca2342728: Pull complete # 分层下载,docker的核心,联合文件系统
79af4312a7e0: Pull complete 
48d3d73d1704: Pull complete 
521b8724b397: Pull complete 
b8cf360b4a14: Pull complete 
0115482cc006: Pull complete 
a360b08917ea: Pull complete 
12deeb3c1323: Pull complete 
ee1dc10db1e9: Pull complete 
64be404ad29c: Pull complete 
1921fe8879a2: Pull complete 
Digest: sha256:3c1aab708f6e57fc4dccafe36baccc7219acfb4ec450f3fb6d370ea89409e906 # 签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest # 真实地址
​
# 等价于
docker pull mysql
docker pull docker.io/library/mysql:latest
​
# 指定版本下载
docker pull mysql:5.7

docker rmi 删除镜像

docker rim -f  镜像id # 删除指定镜像
docker rim -f  镜像id 容器id 容器id # 删除多个镜像
docker rim -f $(docker images -qa) # 删除全部镜像

容器命令

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

# 新建一个centos容器
docker pull centos
新建一个容器并启动

docker run [可选参数] image
​
# 参数说明
--name='Name' 容器名字,用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定端口号容器 -p 8080:8080
    -p ip :主机端口:容器端口
    -p 主机端口:容器端口(常用)
    -p 容器端口
-P 随机指定端口
​
# 测试,启动并进入容器
[root@192 var]# docker run -it centos /bin/bash
[root@ece01cc1d7f7 /]# 
​
# 查看容器内的centos,基础版本
[root@ece01cc1d7f7 /]# ls
bin  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
​
# 从容器中退回主机[root@ece01cc1d7f7 /]# exit
[root@ece01cc1d7f7 /]# exit
exit
[root@192 var]# ls
account  cache  db     games   kerberos  local  log   nis  preserve  spool   tmp
adm      crash  empty  gopher  lib       lock   mail  opt  run    

列出所有运行的容器

# docker ps
    # 列出正在运行的容器
-a  # 列出正在运行的容器+历史运行的容器
-n=? # 显示最近创建的容器
-q # 只显示容器的编号
​
# 列出所有容器
[root@192 var]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

# 列出历史运行的容器
[root@192 var]# docker ps -a
CONTAINER ID   IMAGE         COMMAND       CREATED         STATUS                     PORTS     NAMES
ece01cc1d7f7   centos        "/bin/bash"   6 minutes ago   Exited (0) 4 minutes ago             zealous_neumann
038f20ba7311   hello-world   "/hello"      14 hours ago    Exited (0) 14 hours ago              musing_kalam

# 列出一个历史运行的容器
[root@192 var]# docker ps -a -n=1
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS                     PORTS     NAMES
ece01cc1d7f7   centos    "/bin/bash"   6 minutes ago   Exited (0) 4 minutes ago             zealous_neumann
​
退出容器
exit # 直接停止容器并退出
ctrl+P+Q  # 容器不停止退出
删除容器
docker rm 容器id # 删除指定容器,不能删除正在运行的容器,如要强制删除
rm -f
docker rm -f $(docker ps -aq) # 删除所有容器
docker -p -s | xargs docker rm # 删除所有容器

常用的其他命令


后台启动容器

# 命令 docker run -d 镜像名
​
[root@192 ~]# docker run -d centos
4aa06ae767c4cc303fd8f7c67e1677b876b912d35880b248fc1c90d800a4e60f
​​​​​​​
[root@192 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
# 问题发现centos停止了
# docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
# nginx容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了

​查看日志

docker logs -tf --tail 10 容器
​
# 显示日志
-tf # 显示日志
--tail number # 要显示日志条数
​

查看容器中的进程信息

# docker top 容器id

查看镜像的元数据

# docker inspect 容器id

进入当前正在运行的容器

# 我们通常容器都是后台方式运行的,需要进入容器,修改一些配置
​
# 命令
docker exec -it 容器id /bin/bash
​
[root@192 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS         PORTS     NAMES
d723568b1c29   centos    "/bin/bash"   4 minutes ago   Up 4 minutes             kind_black
[root@192 ~]# docker exec -it d723568b1c29 /bin/bash
[root@d723568b1c29 /]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 02:52 pts/0    00:00:00 /bin/bash
root         21      0  0 02:57 pts/1    00:00:00 /bin/bash
root         35     21  0 02:58 pts/1    00:00:00 ps -ef
[root@d723568b1c29 /]# 
​
​
# 方式二
docker attach 容器id
...正在执行的状态进入
​
# docker exec #进入容器后开启一个新的终端,可以在里面操作(常用)
# docker attach #进入容器正在执行的终端,不会启动新的进程!
​

你可能感兴趣的:(docker,容器,linux)