我的最新文章:https://www.kancloud.cn/dapeng235/thinkphp5_swoole_timer
《Docker — 从入门到实践》GitHub下载pdf版本
https://github.com/yeasy/docker_practice
根据DockerFile生成镜像
docker build -t nginx:nginximage .
docker build -t php:phpimage .
启动镜像,绑定数据卷
docker run --name nginxserver -v /opt/:/opt/ -v /opt/nginx_dockerfile/nginx.conf:/etc/nginx/nginx.conf -v /opt/nginx_dockerfile/prod_nginx.conf:/etc/nginx/conf.d/prod_nginx.conf -d -p 80:80 nginx:nginximage
docker run --name phpserver -v /opt/:/opt/ -v /opt/php_dockerfile/php.ini:/usr/local/etc/php/conf.d/php.ini -d -p 9000:9000 php:phpimage
实时查看docker容器名为phpserver的最后10行日志
docker logs -f -t --tail 10 phpserver
进入镜像容器
docker exec -it phpserver bash
查看容器端口映射
docker port nginxserver
查看容器状态
docker container ls
docker container ls -a //查看所有已经创建的包括终止状态的容器
docker container stop phpserver
docker container rm phpserver
docker container rm -f phpserver //直接删除运作状态的容器
docker container prune //清理掉所有处于终止状态的容器
docker ps //列出容器
docker ps -a //显示所有的容器,包括未运行的
docker stop phpserver //停止
docker start phpserver //启动
docker restart phpserver //重启
查看镜像状态
docker image ls
docker image rm php:phpimage
docker image ls -f dangling=true //显示所有虚悬镜像
docker image prune //删除虚悬镜像
查看PHP扩展
php -m | php -i
文件拷贝
docker cp 31affa27f4aa:/etc/mysql/mysql.cnf /opt/ //从容器到主机
docker cp /opt/ 31affa27f4aa:/etc/mysql/mysql.cnf //从主机到容器
不能复制/proc, /sys, /dev, tmpfs和容器中mount的路径下的文件
容器中vi命令不能使用,可以使用上面的cp命令
镜像导出、导入
其中-o也可以是>表示输出到文件,`nginx.tar`为目标文件,`nginx:latest`是源镜像名(name:tag)
docker save -o nginx.tar nginx:latest
docker load -i nginx.tar
其中-o表示输出到文件,`nginx-test.tar`为目标文件,`nginx-test`是源容器名(name)
docker export -o nginx-test.tar nginx-test
docker import nginx-test.tar nginx:imp
区别
1.export导出的文件较小
2.export命令是从容器(container)中导出tar文件,而save命令则是从镜像(images)中导出
3.export导出的文件再import回去时,无法保留镜像所有历史,save可以保留