java学习快到碗里来Java 进阶JVM · Java虚拟机原理 · JVM上语言·框架· 生态系统

Docker学习(四)docker容器

2020-09-22  本文已影响0人  我犟不过你

一、docker容器

上一章节我们学习了docker镜像额相关内容,基于docker镜像,我们可以创建docker容器了,本章节来学习docker容器的相关内容, 以下启动例子均以之前的nginx镜像为例。

1、直接启动

这种方式会打印启动内容,并且退出后容器即停止。

docker run nginx 
2、后台启动

解决1中的问题,这里采用吼他启动的方式,添加 -d 参数

docker run -d nginx
3、启动并进入容器中
docker run -it nginx /bin/bash
启动并进入容器

通过exit命令退出:

退出
4、后台启动并进入容器

docker run -itd nginx /bin/bash
结果:

结果

按照上述方法添加 -d 参数后,并不会进入容器,下面就提供两种进入容器的方式:

a)docker attach :退出容器后,会导致退出当前容器终止。
b)docker exec :退出容器后,容器不终止。

示例:
通过 a)方式进入容器,退出后发现容器终止了

docker attach [容器id]
docker attach

通过 b)方式进入容器,容器未终止,推荐使用这种方式

docker exec -it [容器id] /bin/bash
docker exec
5、停止容器和重启容器

停止容器:发现没有容器运行了

docker stop [容器id]
docker stop

重启容器:容器恢复运行了

docker restart [容器id]
docker restart
6、容器的导出和导入

容器导出

docker export f1cd37c2b735 > /opt/docker-containerd/ngxin.tar
docker export

容器导入

cat /opt/docker-containerd/ngxin.tar | docker import - jiang/nginx:v3
docker import
7、删除容器

上一章节docker镜像已经讲过删除,可参考上一章节或下面的链接。
https://www.cnblogs.com/miracle-luna/p/11111907.html

除却以上方式外,还可以通过拼接命令的方式,添加 -f 表示强制删除,否则无法删除运行中的容器。

删除所有未运行的容器

docker rm -f $(docker ps -a)

强制删除所有的容器

docker rm -f $(docker ps)
8、启动容器并指定名称

前面我们启动的容器并没有指定名称,我们可以通过 --name 进行指定。下面启动一个名称为nginx-wrx的容器。

docker run -d --name nginx-wrx nginx
容器名称
9、端口映射

启动一个容器时,我们需要将容器的内部容器的端口映射到宿主机上,通过 -p 参数进行映射,下面我们启动一个名为nginx-test,端口80映射到宿主机为7000端口的nginx。

docker run --name nginx-test -d -p 7000:80 nginx

结果:

image.png

指定端口还有一种随机指定,使用大写的 -P,如下所示:

docker run --name nginx-test1 -d -P nginx
随机端口

使用curl看看当前宿主机是否能访问:

curl localhost:7000

结果:成功访问到nginx了

curl
10、查看容器内的进程
docker top nginx-test

结果:


docker top
上一篇 下一篇

猜你喜欢

热点阅读