Docker容器管理
docker run 等于 创建+启动
如多镜像不存在本地,则会去下载该镜像
**注意:容器内的进程必须处于前台状态,否则容器就会直接退出。**自己部署一个容器运行,命令不得后台运行,前台运行即可。
如果容器内,什么事也没做,容器也会挂掉
我们运行nginx基础镜像,没有运行任何程序,因此容器直接挂掉。
#容器的玩法
1.运行一个挂掉的容器(错误示范)
[root@localhost ~]# docker run centos:7.8.2003
会产生多个挂掉的容器运行记录docker ps -a
2.运行容器,进入容器内,并在容器里执行某个命令(沙箱)
[root@localhost ~]# docker run 容器名 sh
SH-4.2#
SH-4.2#
SH-4.2# cat /etc/redhat-release
CentOS Linux release 7.8.2003(Core)
3.开启一个容器,让它帮你运行某个程序,属于前台运行会卡主一个终端
[root@localhost ~]# docker run 容器名 命令
4.运行一个容器,docker ps可以看到的容器,运行在后台
-d为运行后台参数(正对宿主机而言)
[root@localhost ~]# docker run -d 容器名
5.丰富docker的参数
[root@localhost ~]# docker run -d --rm --name 自定义名字 容器名 命令
-d:运行在后台
--rm:容器挂掉后自动删除(运行记录也没有记录)
--name:给容器起名
6.查看容器日志
[root@localhost ~]# docker logs -f 容器名
-f:实时刷新
7.进入容器空间内(正在运行,并进行交互)
[root@localhost ~]# docker exec -it 容器ID bash
8.查看容器的详细信息(高级调试)
[root@localhost ~]# docker container inspect 容器id
9.容器的端口映射
[root@localhost ~]# docker images #查看所有镜像
[root@localhost ~]# docker pull 镜像名 #下载镜像
[root@localhost ~]# docker run -it nginx sh #创建启动并进入容器
#创建一个容器,在后台运行,取一个别名,并设置端口映射
[root@localhost ~]# docker run -d --name 名字 -p 宿主机端口:映射端口 容器名
[root@localhost ~]# docker ps #查看容器
9.1查看容器端口的转发情况
[root@localhost ~]#docker port 容器id
9.2随机端口映射(-P随机访问一个空闲的端口,映射到容器内打开的端口)
[root@localhost ~]# docker run -d --name 名字 -P 容器名
10.容器的提交
#运行基础的centos7.8.2003 在容器内安装vim,然后提交新的镜像
#新的镜像,再运行出的容器,就带vim了
[root@localhost ~]# docker run -it centos7.8.2003 bash #创建启动并进入容器
[ 容器id ]# yum install -y #安装vim
[root@localhost ~]# docker commit 容器id 提交物理路径
[root@localhost ~]# docker images #查看刚才提交的镜像
#以后直接run提交的镜像,就自带vim了