docker export import后,导入镜像,启动时的错误,Error response from daemon: No command specified
Docker的流行与它对容器的易分享和易移植密不可分,用户不仅可以把容器提交到公共服务器上,还可以把容器导出到本地文件系统中。同样,我们也可以把导出的容器重新导入到Docker运行环境中。Docker的容器导入导出分别用import和export命令完成。
1、导出容器export
注意:export导出的是容器,不是镜像。
docker export <CONTAINER ID > > my_container.tar
docker export 命令会把容器的文件系统以tar包的格式导出到标准输出。将容器保存到本地后,我们就可以通过网络等方式将tar包分享给他人。
2、导入容器为镜像import
cat my_container.tar |docker import - image_name:tag
3、查看导入的镜像
docker images
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE clj_mysql 5.6.28 d397fa7d51e3 About an hour ago 322.4 MB daocloud.io/library/mysql 5.6.28 6992b0d06649 3 weeks ago 324.2 MB index.tenxcloud.com/tenxcloud/mysql latest ba0c7864ab1e 3 months ago 470.9 MB
4、运行导入的镜像
docker run --name clj_mysql_3 -e MYSQL_ROOT_PASSWORD=123456 -d -p 33062:3306 clj_mysql:5.6.28 /entrypoint.sh mysqld
注意:运行导入的镜像的时候必须带command,否则启动报如下错误
FATA[0000] Error response from daemon: No command specified
具体的command需要在导出容器的时候通过docker ps查看到。
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f90c4887c320 clj_mysql:5.6.28 "/entrypoint.sh mysqld 4 seconds ago Up 4 seconds 0.0.0.0:33062->3306/tcp clj_mysql_3 8ec92a7f18db daocloud.io/library/mysql:5.6.28 "/entrypoint.sh mysqld 59 minutes ago Up 25 minutes 0.0.0.0:33061->3306/tcp clj_mysql
总结:
import和export命令的使用,前提是需要知道command,而command的具体值,只有在导出时,通过docker ps 才能查询到。因此,command值需要显式表述出来。