Bootstrap

Docker容器的文件操作

1.宿主机的内容拷贝到启动的docker容器中

1查看docker容器状态

docker ps-a 

2如果没有启动docker容器则启动docker容器

docker start 容器名或者容器ID

3.进入容器

docker exec -it 容器名/容器ID  /bin/bash

4.克隆宿主机会话并在宿主机创立文件
(1)进入容器的根目录

cd /

(2)创建jhj文件,并写入内容123456

echo 123456 > jhj

(3)拷贝到docker容器中

docker cp 要拷贝的宿主机文件或目录 容器名称:容器文件或目录

举例因为文件是在根目录,所以拷贝方法注意:容器的ID后面接的:并且之间没有空格

docker cp /jhj2 a42ab1c81128:/jhj2 

所以在容器下面也能查看到这个文件
在这里插入图片描述

将docker容器中的文件拷贝到宿主机

1先在docker容器下面创建一个文件

echo 123456 >jhj

2拷贝文件

docker cp 容器名称:要拷贝的容器文件或目录 宿主机文件或目录

以根目录创建文件为例展示命令注意容器iID后面接的:与容器ID之间没有空格,后面接将要复制的文件地址再空格接复制到宿主机的位置

 docker cp a42ab1c81128:/jhj / 

数据目录挂载(目录映射)

我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。使用 -v 选项(也就是docker帮我们实时更新文件)

docker run -id -v /宿主机绝对路径目录:/docker容器内目录 --name=容器名 镜像名

举例宿主机和docker容器都在opt文件夹下面映射
(1)生成一个数据目录挂载的docker容器

 docker run -id -v /opt:/opt --name=jhj6 centos:7

在这里插入图片描述
(2)在宿主机的映射文件夹中修改东西,(添加jhj文件)
注意写入文件的时候的echo后面文字与>之间有空格

echo jhjjhj >/opt/jhj.txt

在这里插入图片描述
(3)查看docker容器之中是否创建
在这里插入图片描述

docker 容器数据目录挂载并设置只读权限

实现挂载的目录只有 只读(Read-only)权限,命令如下 :

docker run -id -v /宿主机绝对路径目录:/容器内目录:ro --name=容器名 镜像名

(1)例如宿主机创建jhj文件docker创建lcr文件夹(当然如果没有创建的时候它会自动生成)

docker run -id -v /jhj:/lcr:ro --name=jhj7 centos:7

在这里插入图片描述
当然我这里用的是-it这样创建的容器,创建好了就会自动进入容器,如果用exit命令退出,容器就会关闭,所以用cotrl+q+p就能退到后台不会关闭容器

(2)因为前面的是用jhj作为文本形式,所以在宿主容器中jhj没有被创建也就是文本形式存在,所以docker容器中lcr被创建也是文本形式创建
在这里插入图片描述
在这里插入图片描述
由图可见在docker容器中操作lcr文件不能保存只能readOnly

查看容器详情

查看容器运行内部细节,比如可看容器的IP

docker inspect 容器名:容器ID

查看容器IP

docker inspect --format='{{.NetworkSettings.IPAddress}}` 容器名

删除容器注意只能删除停止的容器

docker rm `docker ps -a -q`
;