容器基础(一)
镜像管理
docker search <container_name> #搜索镜像 docker pull <container_name>[:<version>] #拉去镜像(选择镜像及下载位置mariadb/xxx) docker push <container_name> #推送镜像到云上(Docker Hub) docker images <container_name> #查看当前镜像信息 -q 只显示镜像id -a 列出本地所有镜像(含中间映像层) --digests 显示镜像的摘要信息 --no-trunc 显示镜像完整信息 docker rmi <container_name> #删除镜像 docker history <container_name> #查看镜像历史被使用的信息 |
容器转换镜像(必须停止容器) docker commit <container_id> <image_id> docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[TAG] 镜像导入导出 docker save <images_name> > /opt/<namefile>.tar.gz #将镜像导出成文件 docker load <images_name> < /opt/<namefile>.tar.gz #将文件导入成镜像 |
中国官网镜像加速 vi /etc/docker/daemon.json #添加后 { "registry-mirrors": ["https://registry.docker-cn.com"], "live-restore": true } |
容器查询
docker ps -a #查看所有容器列表 docker container ls -a #查看所有容器列表 docker logs <name_id> #查看容器运行日志 -f 表示查看实时日志 since 指定了输出日志的开始日期,即只会输出在该日期之后的日志 --tail=10 表示查看最后的十条,数字可以自己指定 docker top <name_id> #查看容器中的进程信息 docker stats [<name_id>] #查看容器的性能使用情况(CPU、MEM、NET、BLOCK) |
||||
docker inspect <name_id> #容器详情
docker inspect -f '{{.NetworkSettings.Networks.bridge.MacAddress}}' <name_id> #容器参数查询 |
容器管理
容器运行管理 docker run -it -d --name centos7 -v /docker/:/docker/ -v /sys/fs/cgroup:/sys/fs/cgroup:ro --privileged=true centos:7 init 创建centos7镜像赋予init宿主机特权 -d 后台运行 -it 交互模式运行 -v 挂在主机上的文件或目录到容器内部(host_file:name_file, 绝对路径) -p 端口映射(host_port:name_port,-P随机端口映射) -e 设备容器环境变量(ENV_VARIABLE=value) --privileged=true 赋予主机root特权(默认普通权限,自定义特权--cap-add、--device |
容器终端管理 docker exec -it <name_id> bash #进入容器终端 docker attach <name_id> #进入容器终端 docker exec -it <name_id> <command> #远程在容器执行命令 |
容器启停、删除管理 docker start/stop/restart <name_id> #启动/停止/重启容器 docker kill <name_id> #强制停止当前容器 docker rm <name_id> #删除容器及镜像 |
容器文件
文件映射 docker volume create <volume_name> #创建数据卷 docker volume ls #查看数据卷 docker volume inspect <volume_name> #查看数据卷具体信息 docker run -d -it --name xxx -v httpfile:/usr/local/apache/ httpd:latest #将容器中/usr/local/apache/目录映射到httpfile数据卷中 #在修改宿主机上的映射文件后容器中也会自动更新,测试时修改了apache的端口容器重启后导致apache服务访问不了(容器映射的端口不会自动改变) docker volume rm <volume_name> #删除数据卷 注意: 1、容器中文件映射到本地宿主机的某个目录下时,不受容器的删除而导致文件数据丢失 2、容器文件被映射后又删除容器,重新创建容器映射该文件数据会恢复 https://zhuanlan.zhihu.com/p/584327825
|
容器文件复制 docker cp <name_id>:<path> <paht> #从容器中复制文件到本地宿主机 docker cp <path> <name_id>:<path> #从本地宿主机复制到容器中 |
镜像初始化Dockerfile, 本地执行docker build -f /path/to/a/Dockerfile .
https://www.cnblogs.com/ityouknow/p/8595384.html FROM # 基础镜像,一切从这里开始构建 FROM <镜像名>:<版本> MAINTAINER # 镜像是谁写的, 姓名+邮箱 RUN # 镜像构建的时候需要运行的命令 RUN <命令> COPY # 类似ADD,将我们文件拷贝到镜像中 COPY <原路径> <镜像路径> ADD # 步骤,tomcat镜像,这个tomcat压缩包!添加内容到同目录 ADD <原路径(文件、URL、压缩包)> <镜像路径> WORKDIR # 镜像的工作目录 WORKDIR <类同cd命令> VOLUME # 挂载的目录 VOLUME <宿主机路径> <镜像路径> EXPOSE # 暴露端口配置 EXPOSE <宿主机端口> <镜像端口> CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代。 CMD <command> <maram1 ....> ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令, 通过docker run执行的命令不会覆盖 类同CMD参数 ONBUILD # 当构建一个被继承 DockerFile 这个时候就会运行ONBUILD的指令,触发指令。 ENV <变量>=<值> USER #指定运行镜像用户 USER <用户名> |
镜像管理
docker search <container_name> #搜索镜像 docker pull <container_name>[:<version>] #拉去镜像(选择镜像及下载位置mariadb/xxx) docker push <container_name> #推送镜像到云上(Docker Hub) docker images <container_name> #查看当前镜像信息 -q 只显示镜像id -a 列出本地所有镜像(含中间映像层) --digests 显示镜像的摘要信息 --no-trunc 显示镜像完整信息 docker rmi <container_name> #删除镜像 docker history <container_name> #查看镜像历史被使用的信息 |
容器转换镜像(必须停止容器) docker commit <container_id> <image_id> docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[TAG] 镜像导入导出 docker save <images_name> > /opt/<namefile>.tar.gz #将镜像导出成文件 docker load <images_name> < /opt/<namefile>.tar.gz #将文件导入成镜像 |
中国官网镜像加速 vi /etc/docker/daemon.json #添加后 { "registry-mirrors": ["https://registry.docker-cn.com"], "live-restore": true } |
容器查询
docker ps -a #查看所有容器列表 docker container ls -a #查看所有容器列表 docker logs <name_id> #查看容器运行日志 -f 表示查看实时日志 since 指定了输出日志的开始日期,即只会输出在该日期之后的日志 --tail=10 表示查看最后的十条,数字可以自己指定 docker top <name_id> #查看容器中的进程信息 docker stats [<name_id>] #查看容器的性能使用情况(CPU、MEM、NET、BLOCK) |
||||
docker inspect <name_id> #容器详情
docker inspect -f '{{.NetworkSettings.Networks.bridge.MacAddress}}' <name_id> #容器参数查询
|
容器管理
容器运行管理 docker run -it -d --name centos7 -v /docker/:/docker/ -v /sys/fs/cgroup:/sys/fs/cgroup:ro --privileged=true centos:7 init 创建centos7镜像赋予init宿主机特权 -d 后台运行 -it 交互模式运行 -v 挂在主机上的文件或目录到容器内部(host_file:name_file, 绝对路径) -p 端口映射(host_port:name_port,-P随机端口映射) -e 设备容器环境变量(ENV_VARIABLE=value) --privileged=true 赋予主机root特权(默认普通权限,自定义特权--cap-add、--device |
容器终端管理 docker exec -it <name_id> bash #进入容器终端 docker attach <name_id> #进入容器终端 docker exec -it <name_id> <command> #远程在容器执行命令 |
容器启停、删除管理 docker start/stop/restart <name_id> #启动/停止/重启容器 docker kill <name_id> #强制停止当前容器 docker rm <name_id> #删除容器及镜像 |
容器文件
文件映射 docker volume create <volume_name> #创建数据卷 docker volume ls #查看数据卷 docker volume inspect <volume_name> #查看数据卷具体信息 docker run -d -it --name xxx -v httpfile:/usr/local/apache/ httpd:latest #将容器中/usr/local/apache/目录映射到httpfile数据卷中 #在修改宿主机上的映射文件后容器中也会自动更新,测试时修改了apache的端口容器重启后导致apache服务访问不了(容器映射的端口不会自动改变) docker volume rm <volume_name> #删除数据卷 注意: 1、容器中文件映射到本地宿主机的某个目录下时,不受容器的删除而导致文件数据丢失 2、容器文件被映射后又删除容器,重新创建容器映射该文件数据会恢复 https://zhuanlan.zhihu.com/p/584327825
|
容器文件复制 docker cp <name_id>:<path> <paht> #从容器中复制文件到本地宿主机 docker cp <path> <name_id>:<path> #从本地宿主机复制到容器中 |
镜像初始化Dockerfile, 本地执行docker build -f /path/to/a/Dockerfile .
https://www.cnblogs.com/ityouknow/p/8595384.html FROM # 基础镜像,一切从这里开始构建 FROM <镜像名>:<版本> MAINTAINER # 镜像是谁写的, 姓名+邮箱 RUN # 镜像构建的时候需要运行的命令 RUN <命令> COPY # 类似ADD,将我们文件拷贝到镜像中 COPY <原路径> <镜像路径> ADD # 步骤,tomcat镜像,这个tomcat压缩包!添加内容到同目录 ADD <原路径(文件、URL、压缩包)> <镜像路径> WORKDIR # 镜像的工作目录 WORKDIR <类同cd命令> VOLUME # 挂载的目录 VOLUME <宿主机路径> <镜像路径> EXPOSE # 暴露端口配置 EXPOSE <宿主机端口> <镜像端口> CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代。 CMD <command> <maram1 ....> ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令, 通过docker run执行的命令不会覆盖 类同CMD参数 ONBUILD # 当构建一个被继承 DockerFile 这个时候就会运行ONBUILD的指令,触发指令。 ENV <变量>=<值> USER #指定运行镜像用户 USER <用户名> |