本人学习docker也有一个星期了,遇到了很多的问题,从最开始的安装docker服务,到搭建镜像,还有容器的命令,学的很稀碎,造成这个原因很大可能就是之前看了一部分,中间大概一个多月没继续学docker,所以学习一个知识点,还是体系的学习,中间最好不要停止。接下来学习openstack!
容器的查看命令
查看docker的启动镜像:docker images
查看docker正在运行的容器:docker ps
查看docker所有的容器:docker ps -a
查看容器已经映射的端口
docker port 容器名
容器的运行命令
把宿主机的多个端口映射给容器端口
docker run -it -d -p 8080:80 -p 443:80 容器名 /bin/bash
创建容器并运行进入容器,退出后自动删除容器
docker run -it -d -rm 容器名 /bin/bash
创建容器并运行进入容器,退出后自动删除镜像
docker run -it -d -rmi 容器名 /bin/bash
进入到正在运行的容器
docker -it -d exec 容器名/容器ID /bin/bash
容器的删除命令
删除docker容器
docker rm 容器名/容器ID
删除docker容器镜像
docker rmi 镜像ID/镜像名
正常关闭所有运行中的容器
docker stop $(docker ps -q)
批量强制关闭正在运行的容器
docker kill $(docker ps -a -q)
批量删除已退出容器
docker rm -f `docker ps -aq -f status=exited`
批量删除所有容器
docker rm -f $(docker ps -a -q)
容器dockerfile编写的命令
from:指明容器的父镜像,位于文件的第一行(注释除外)
add:把宿主机里的文件或目录或压缩等资源添加到容器,并且自动解压后缀名是.tar.gz的压缩文件
run:以非交互方式执行shell命令
env:设置环境变量
cmd:镜像启动为一个容器时候的默认命令或脚本, CMD ["/bin/bash"]
镜像文件的搭建
docker build -t 镜像名 . (在编写Dockerfile的目录执行此命令)
容器的其他命令
把容器里的镜像以压缩包方式导出到宿主机
docker save > /opt/centos.tar
把本机的镜像导入到另一台物理机
1、把本机导出的镜像压缩包传给目的物理机
scp 镜像文件的压缩包 目的容器的宿主机
2、把镜像导入到容器
docker load -i 镜像文件的压缩包
把容器里面文件拷备到宿主机
docker cp 容器名/容器ID:要拷贝的文件路径 宿主机的路径
把宿主机里面文件拷备到容器
docker cp 拷备宿主机文件的路径 容器名/容器ID:容器文件路径
注意事项:
-
把宿主机的端口映射给容器
-
rmi删除的是镜像,rm删除的是容器
-
镜像的命名方式一般是:镜像仓库IP或仓库域名/项目名称/镜像名称:版本
-
在写Dockerfile文件时一定注意D是大写的
-
Dockerfile里面所需的宿主机文件、目录、压缩包以及其他资源,最好放在和Dockerfile在一个目录下
-
-i:以交互方式运行容器,-t:给容器分配一个伪终端,通常两者结合使用-it