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 bitbucket.org >> /root/.ssh/known_hosts
ADD $key /root/.ssh/
ADD $pub_key /root/.ssh/
RUN git clone git@bitbucket.org:******************/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

  • Print timestamps in Docker Compose logs
  • Why does my docker daemon run the container as an arbitrary non-docker user?
  • Docker mongodb + node js. How to build working image?
  • How can I setup Docker container with individual IP address on EC2 instance?
  • Docker command (cli) defaulting to port instead of socket
  • gsub encoding error when running on Linux Docker Container Invalid byte sequence in US-ASCII
  • 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

  • In Docker, “Error response from daemon: could not choose an IP address to advertise since this system has multiple addresses on different interfaces”
  • How do I deploy updated Docker images to Amazon ECS tasks?
  • Docker on CentOS with bridge to LAN network
  • How can I update DOCKER_OPTS in docker-machine permanently
  • How can I ssh into “Web App On Linux” docker container on Azure?
  • How do you get a file from a windows host to linux docker container?
  • 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 id_rsa.pub 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.