docker容器操作及定制镜像

1、容器的2种启动方式:

a、run命令:基于镜像新建一个容器并启动容器

docker run options Images command  ( 其中command命令可以不写,默认命令为/bin/bash )

b、在终止状态下的容器,重新进行启动

2、docker ps -a : 可以查看所有运行过的容器

3、options参数分为以下几种:

--name    指定容器的名字

-d    通过后台运行

-i    交互模式

-t    调出终端

-p    映射

docker run -p 80:80 nginx:latest  (此时终端进入阻塞模式了,会在本地80端口启动一个nginx服务,然后通过容器映射到虚拟机上,进行访问)

测试方法:终端新开一个窗口输入 curl http://192.168.60.109 (由于是从80映射到80,所以访问时可以不加端口;如果是从80映射到8000,访问时就需要加端口了。例如:docker run -p 8000:80 nginx:latest ) ,终端会打印出一串“Thank you for using nginx.”信息,则表示服务映射开启成功了:


这时候会发现终端这边有打印出一行请求信息:


4、docker ps -q : 列出所有容器的id

-q可以和-a结合使用,如:docker ps -aq 列出所有运行过的容器的id


5、docker logs + container id : 可以查看容器的运行logs

6、docker exec -it container id : 进入容器

测试方法:先在后台启动一个容器 docker run -d -it ubntu:16.04 ,成功将容器启动到后台

再执行:docker exec -it + 容器id,就能正常进入容器了。如下:


7、定制镜像,通过Dockerfile文件来定制的,如下:通过2个命令来实现最简单的定制


从NGINX执行echo命令,重定向到index.html文件

FROM 指定基础镜像,即:在什么基础上面进行修改。如果没有找到这个镜像,则会自动先去下载。

8、docker build -t my_nginx:v1 . (注意这个点,一定不要漏掉了)指定build一个my_nginx,指定版本为v1


就会发现程序先去查找了nginx镜像,然后执行了一个run命令,然后启动了一个容器,docker images查找一下,就会发现刚才新启动的容器了:



9、执行一下:docker run -p 80:80 my_nginx:v1 启动my_nginx终端,新开终端窗口进行访问:curl http://192.168.60.109:80 就会发现终端只打印出来“

hello docker

”这行信息,其他信息都被覆盖掉了。如下:



这时候直接进入容器(注意:进入容器,容器id后面最好加上执行路径文件:/bin/bash ),查看index.html文件也会发现,只输出了一行hello docker信息,如下:


docker 也是分为客户端和服务端的。

10、提个问题:怎么才能把当前目录文件引入到docker服务端?

如下:将index.html 拷贝到app目录


然后启动下容器,就会发现文件已经正常拷贝到app目录了:


你可能感兴趣的:(docker容器操作及定制镜像)