add ssh keys in Docker

in my Dockefile i am adding ssh key to the docker and cloning a project from bitbucket.
i can pull another branch in the Docker file easily.

ARG key
ARG pub_key
RUN mkdir /root/.ssh/
RUN ssh-keyscan >> /root/.ssh/known_hosts
ADD $key /root/.ssh/
ADD $pub_key /root/.ssh/
RUN git clone******************/sql.git
WORKDIR "/sql"
RUN git pull origin testBranch

the repo is cloned sucesfully and and a pull is made successfully from the testBranch
when i run this docker using docker run command and try any git command it says

  • Is there a way to store files on the docker host which will survive host restarts?
  • Issue connecting to rabbitmq from container
  • What special precautions must I make for docker apps running as pid 1?
  • Writing Elasticsearch logs from Docker to an external volume
  • Manipulating network traffic between containers in Docker in Docker environment without privileged mode?
  • Running svn update script on docker container start
  • Permission denied (publickey).
    fatal: Could not read from remote repository.
    Please make sure you have the correct access rights

    but the ssh key is present in the directory /root/.ssh

  • Docker blocking outgoing connections on high load?
  • Docker can't load config file, but container works fine
  • docker-compose image named: “prefix_%s_1” instead of “%s”
  • Cannot receieve response from activemq when using docker
  • What's a workable way setup an Akka cluster in a multi-node Docker environment?
  • Docker compose file memory, cpu limits
  • One Solution collect form web for “add ssh keys in Docker”

    Your key is added against root user (/root/.ssh/). I guess when you run docker run you are switching to another user (maybe, docker).

    If you add your to correct user (the user after running docker run command) then it should work.

    $ whoami show you the current user.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.