一: 创建容器

  • 前提:拉取镜像
  • 命令: docker create 参数 镜像名 命令

[root@localhost ~]# docker create -it centos:7 /bin/bash
e27173a8adf1f46f5b0e476b80556a82c6a175498ecc777983facdad2b8ba41e
[root@localhost ~]# docker ps 
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@localhost ~]# docker ps  -a 
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS    PORTS     NAMES
e27173a8adf1   centos:7   "/bin/bash"   8 seconds ago   Created             nice_wiles
[root@localhost ~]# 


二: 创建并运行容器

  • 命令: docker run 参数 镜像名 命令

[root@localhost ~]# docker run -it --restart=always   centos:7  /bin/bash
[root@aa47b6d1f5fe /]# ls 
anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@aa47b6d1f5fe /]# 

三: 断开与容器连接

exit:退出容器终端,停止当前容器

ctrl + p + q:退出当前窗口,但容器还在后台运行

四: 查看容器


# 1.0 查看正在运行的容器
[root@localhost ~]# docker ps 
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS              PORTS     NAMES
aa47b6d1f5fe   centos:7   "/bin/bash"   5 minutes ago   Up About a minute             strange_bassi
[root@localhost ~]#


# 2.0 查看所有容器
[root@localhost ~]# docker ps -a 
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS              PORTS     NAMES
aa47b6d1f5fe   centos:7   "/bin/bash"   6 minutes ago   Up About a minute             strange_bassi
e27173a8adf1   centos:7   "/bin/bash"   9 minutes ago   Created                       nice_wiles
[root@localhost ~]# 


# 3.0 查看容器详情信息
docker inspect    容器ID


# 4.0 查看容器资源使用
[root@localhost ~]# docker stats   容器ID


五: 启动容器


[root@localhost ~]# docker start 已创建未启动的容器ID

六: 关闭容器

  • 关闭容器命令1:docker stop 容器id
  • 关闭容器命令2:docker kill 容器id

[root@localhost ~]# docker stop aa47b6d1f5fe
aa47b6d1f5fe

七: 删除容器

  • 命令:docker rm 容器id

[root@localhost ~]# docker rm aa47b6d1f5fe e27173a8adf1
aa47b6d1f5fe
e27173a8adf1
[root@localhost ~]# 


八: 重启容器

  • 前提:先停止容器,然后再重启容器
  • 命令:docker restart 容器ID

[root@localhost ~]# docker run -it centos:7 /bin/bash  # 运行容器
[root@38656479b78d /]# [root@localhost ~]# 
[root@localhost ~]# docker ps    # 查看正在运行的容器
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS          PORTS     NAMES
38656479b78d   centos:7   "/bin/bash"   22 seconds ago   Up 21 seconds             pensive_shamir
[root@localhost ~]# docker stop 38656479b78d   # 停止容器运行
38656479b78d
[root@localhost ~]# docker ps -a     # 查看之前运行过的容器
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS                       PORTS     NAMES
38656479b78d   centos:7   "/bin/bash"   51 seconds ago   Exited (137) 5 seconds ago             pensive_shamir
[root@localhost ~]# docker restart  38656479b78d   # 重启容器
38656479b78d
[root@localhost ~]# docker ps 
CONTAINER ID   IMAGE      COMMAND       CREATED              STATUS         PORTS     NAMES
38656479b78d   centos:7   "/bin/bash"   About a minute ago   Up 4 seconds             pensive_shamir
[root@localhost ~]# 


九: 附着容器

  • 作用:docker attach来重新附着到该容器的回话中
  • 命令:docker attach 容器id

[root@localhost ~]# docker ps -a 
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS         PORTS     NAMES
38656479b78d   centos:7   "/bin/bash"   9 minutes ago   Up 8 minutes             pensive_shamir
[root@localhost ~]# docker attach 38656479b78d 
[root@38656479b78d /]# 


十: 后台运行

  • 命令:docker run -d 镜像名 命令

[root@localhost ~]# docker run -it -d --name mytest  centos:7  /bin/bash


# 查看容器日志
[root@localhost ~]#docker logs mytest


# 附着容器
[root@localhost ~]# docker attach mytest


十一: 容器更名

  • 命令:docker rename mytest mytest1

# 查询现有容器
[root@localhost ~]# docker ps 
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS         PORTS     NAMES
caf06cfbf787   centos:7   "/bin/bash"   2 minutes ago   Up 2 minutes             mytest


# 更名
[root@localhost ~]# docker rename mytest mytest1


# 查看容器
[root@localhost ~]# docker ps 
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS         PORTS     NAMES
caf06cfbf787   centos:7   "/bin/bash"   2 minutes ago   Up 2 minutes             mytest1
[root@localhost ~]# 


十二: 端口映射

  • 运行容器的时候,加上-p这个参数,就是端口映射

# 运行容器并暴露
[root@localhost ~]# docker run -it --name=test-port --restart=always -p 20:2020 centos:7 /bin/bash

# 查看
docker port test-port 

# 
docker ps


十三: 容器监控


1. logs:使用logs命令查看守护式容器
2. top:top显示一个运行的容器里面的进程信息
3. event:event实时输出Docker服务器端的事件
4. wait:wait捕捉容器停止时的退出码
5. diff:diff查看容器内发生改变的文件
6. cp:宿主机和容器之间相互Copy文件


面试重点

attach和exec的区别?

docker attach

连接到容器PID=1 的原始主进程终端,共用容器启动时唯一的前台会话。

docker exec

在容器里新建一个独立的子进程终端,和原本的主进程完全隔离。

更多推荐