docker
常见问题
- 使用docker-compose搭了个php redis,php无法链接redis问题?
// hostname访问MySQL服务db
$redis = new Redis();
try {
// $redis->connect('127.0.0.1', 6379);
$redis->connect('redis', 6379);
} catch (Exception $e) {
var_dump($e->getMessage()) ;
die;
}
学习笔记
- 从dockerFile中build一个镜像
# imagename 起的镜像名字; tagname 起个tag名字; 最后的‘.’是当前dockerFile路径;
docker build -t imagename:tagname .
docker command --help 查看详细命令,如 docker ps --help
- docker image ls 查看所有镜像
- docker ps -a 查看所有容器
- docker stop/start/rm 启用、停止、删除容器
- run一个镜像,生成一个容器
代码语言:javascript复制-p 和 -v分别是挂载 宿主机ip/解析目录:docker的ip/解析目录
docker run -p 80:80 --name myTest -v /usr/docker/nginx/www:/usr/share/nginx/html -d nginx:latest
- 进入内部交互cli
docker exec -it efxs25 /bin/sh
- commit构建镜像
docker commit -a="litblc" -m="test 1" yourContainerId imageName:imageTag
- Docker ps查看正在运行的容器的id等信息
docker inspect 容器id 可以查看到容器的相关信息
- 无法在 docker 容器里面敲systemctl命令(centos7),出"Failed to get D-Bus connection: No connection to service manager." 的解决办法:
docker run --privileged -d -p 80:80 --name httpd1 XXXX/XXXXXX:XXX /sbin/init
- 容器启动不了问题: 启用selinux可以解决
/etc/selinux/config
SELINUX=enforcing
- 导出image,方便下载到本地。
docker save -o centos-passport.tar litblc/centos:0804
- 在开发环境导入打包镜像。
docker load -i centos-passport.tar
*注:用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。
- 将宿主机上的文件拷贝到容器中
docker cp /www/litblc 96f7f14e99ab:/www/