1、从容器里面拷文件到宿主机?
答:在宿主机里面执行以下命令
docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径
示例: 假设容器名为testtomcat,要从容器里面拷贝的文件路为:/usr/local/tomcat/webapps/test/js/, 现在要将从容器里面拷到宿主机的/opt路径下面,那么命令应该怎么写呢?
答案:在宿主机上面执行命令
docker cp testtomcat:/usr/local/tomcat/webapps/test/js/ /opt
2、从宿主机拷文件到容器里面
答:在宿主机里面执行如下命令
docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
示例:假设容器名为testtomcat,现在要将宿主机/opt/文件拷贝到容器里面的/usr/local/tomcat/webapps/test/js路径下面,那么命令该怎么写呢?
答案:在宿主机上面执行如下命令
docker cp /opt/ testtomcat:/usr/local/tomcat/webapps/test/js
3、在这里在记录一个问题,怎么看容器名称?
执行命令:docker ps,出现如图所示,其中NAMES就是容器名了。
容器创建好后有时需要进入容器修改配置,发现没有vim,我们可以使用sed命令来修改配置文件
sed -i ‘3s/yes/no/’ 将中第3行中的yes修改为no
sed -i ‘3ayes=no’ 在中第三行后另起一行(第四行)写入yes=no
sed -i ‘3d’ 删除中的第3行
sed -i '
a
y
e
s
=
n
o
′
a
.
c
o
n
f
在
a
.
c
o
n
f
末
尾
新
增
1
行
y
e
s
=
n
o
e
c
h
o
′
y
e
s
=
n
o
′
>
>
a
.
c
o
n
f
在
a
.
c
o
n
f
末
尾
新
增
1
行
y
e
s
=
n
o
可
以
通
过
c
a
t
−
n
a
.
c
o
n
f
或
l
e
s
s
−
N
a
.
c
o
n
f
查
看
行
号
s
e
d
是
用
新
文
件
替
换
原
来
的
文
件
,
所
以
在
容
器
中
直
接
修
改
挂
载
的
文
件
时
会
报
D
e
v
i
c
e
o
r
r
e
s
o
u
r
c
e
b
u
s
y
资
源
忙
的
错
误
,
因
此
要
重
定
向
e
c
h
o
"
ayes=no' 在末尾新增1行 yes=no echo 'yes=no' >> 在末尾新增1行 yes=no 可以通过cat -n 或 less -N 查看行号 sed是用新文件替换原来的文件,所以在容器中直接修改挂载的文件时会报Device or resource busy资源忙的错误,因此要重定向 echo "
ayes=no′a.conf在a.conf末尾新增1行yes=noecho′yes=no′>>a.conf在a.conf末尾新增1行yes=no可以通过cat−na.conf或less−Na.conf查看行号sed是用新文件替换原来的文件,所以在容器中直接修改挂载的文件时会报Deviceorresourcebusy资源忙的错误,因此要重定向echo"(sed ‘3s/yes/no/’ )" > 将中第3行中的yes修改为no
或 echo “sed ‘3s/yes/no/’
” >
通过这几个命令就可以很方便的在容器中修改配置文件了