容器命令

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

docker pull centos

新建容器并启动

docker run [可选参数] image
# 参数说明
--name="Name" 容器名字 tomcat01 tomcat02 ,用来区分容器
-d 后台方式运行,ja nohup
-i  使用交互方式运行,进入容器查看内容
-t  使用交互方式运行,进入容器查看内容
-p 指定容器的端口 -p 8080:8080
  -p ip主机端口 : 容器端口
  -p 主机端口 : 容器端口(这种方式常用)
  -p 容器端口
  容器端口
-P 随机指定容器端口

测试一下

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

这个容器内部也是一个小型的服务器环境

[root@iz8g9301trfnpxz /]# docker run -it centos /bin/bash
[root@a8b5df0d1e9c /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

内部的centos和外部的centos没有半毛钱关系

很多命令都是不完善的

从容器中退出主机

[root@a8b5df0d1e9c /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@a8b5df0d1e9c /]# exit
exit
[root@iz8g9301trfnpxz /]#

列出所有的运行的容器

# docker ps 命令
    # 列出当前正在运行的容器
    -a # 列出当前运行的容器+列出曾经的运行的容器
    -n=? # 显示出容器

试一下

[root@iz8g9301trfnpxz /]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@iz8g9301trfnpxz /]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                         PORTS               NAMES
a8b5df0d1e9c        centos              "/bin/bash"         2 minutes ago       Exited (0) 46 seconds ago                          romantic_hawking
370f3dcf3c32        bf756fb1ae65        "/hello"            About an hour ago   Exited (0) About an hour ago                       elated_fermi
289fedfe164c        bf756fb1ae65        "/hello"            About an hour ago   Exited (0) About an hour ago                       goofy_brahmagupta

整个docker 就如何围绕着容器和镜像来打交道

退出容器

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

删除容器

docker rm
docker rm -f $(docker ps -aq)
docker ps -a -q|xargs docker rm # 删除所有的容器

启动和停止容器的操作


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

从容器内拷贝文件到主机上

docker cp 容器id: 容器内路径 目的的主机路径

[root@iz8g9301trfnpxz home]# docker attach 1a9d611cdabb
[root@1a9d611cdabb /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@1a9d611cdabb /]# cd home
[root@1a9d611cdabb home]# ls
[root@1a9d611cdabb home]# 
[root@1a9d611cdabb home]# touch test.java
[root@1a9d611cdabb home]# exit
[root@iz8g9301trfnpxz home]# docker cp 1a9d611cdabb:/home/test.java /home
[root@iz8g9301trfnpxz home]# ls
admin  kuangshen.java  test.java

拷贝是一个手动过程,未来我们使用 -v 卷技术 可以实现

学习方式: 将我们所有命令全部敲一遍,记住


results matching ""

    No results matching ""