容器命令
说明: 我们有了镜像才可以创建容器,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 卷技术 可以实现
学习方式: 将我们所有命令全部敲一遍,记住