Docker 使用笔记

2023-09-05 15:37:01 浏览数 (1)

docker

常见问题

  • 使用docker-compose搭了个php redis,php无法链接redis问题?
代码语言:javascript复制
// 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一个镜像
代码语言:javascript复制
# 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一个镜像,生成一个容器

-p 和 -v分别是挂载 宿主机ip/解析目录:docker的ip/解析目录

代码语言:javascript复制
docker run -p 80:80 --name myTest -v /usr/docker/nginx/www:/usr/share/nginx/html -d nginx:latest
  • 进入内部交互cli
代码语言:javascript复制
docker exec -it efxs25 /bin/sh
  • commit构建镜像
代码语言:javascript复制
docker commit -a="litblc" -m="test 1" yourContainerId imageName:imageTag
  • Docker ps查看正在运行的容器的id等信息
代码语言:javascript复制
docker inspect 容器id     可以查看到容器的相关信息
  • 无法在 docker 容器里面敲systemctl命令(centos7),出"Failed to get D-Bus connection: No connection to service manager." 的解决办法:
代码语言:javascript复制
docker run --privileged -d -p 80:80 --name httpd1 XXXX/XXXXXX:XXX /sbin/init
  • 容器启动不了问题: 启用selinux可以解决
代码语言:javascript复制
/etc/selinux/config
SELINUX=enforcing
  • 导出image,方便下载到本地。
代码语言:javascript复制
docker save -o centos-passport.tar litblc/centos:0804
  • 在开发环境导入打包镜像。
代码语言:javascript复制
docker load -i centos-passport.tar

*注:用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。

  • 将宿主机上的文件拷贝到容器中
代码语言:javascript复制
docker cp /www/litblc 96f7f14e99ab:/www/

0 人点赞