-
-
Save mitchwongho/11266726 to your computer and use it in GitHub Desktop.
# Assuming an Ubuntu Docker image | |
$ docker run -it <image> /bin/bash |
@arjabbar /bin/bash
and bash
are not always the same thing. The former is a direct reference to an executable and the latter is detected by searching $PATH for an executable with the name bash
.
As for the second line: docker run -it bash
does not run bash inside of your image; it downloads the bash:latest
image and runs it. It is syntactically equivalent to running docker run -it --entrypoint /usr/local/bin/bash bash
Is there a form of this I can use to log into github as part of the "docker build ."?
My node project uses private npm packages stored in githib. So my build dies with
npm ERR! /usr/bin/git ls-remote -h -t https://github.com/johngrabner/purple_shared_enums_cloud_and_charger.git
npm ERR! remote: Invalid username or password.
I find that when I run docker run -it --entrypoint bash <image>
that it does not save any of my changes.
I think it never saves your changes because they are made to the container and not the image itself.
You can save it as a new image like this:
$ docker commit <container_id> new_image_name:tag_name(optional)
As you are on bash, you have to skip it to root or use another terminal (take a note of your container ID)
docker run -it --entrypoint /bin/sh
for the images w/o bash.
docker run -it --entrypoint /bin/sh
docker run -it --entrypoint /bin/sh
for the images w/o bash.
thank you.. ..you are a savior
if you add --rm the container gets deleted if you exit it ;-)
If you want to interact with an existing container, do:
docker exec -it <name> bash
(alpine has sh)
docker exec -it <name> sh
This won't work if your image has a defined ENTRYPOINT. For these cases use:
docker run -it --entrypoint /bin/bash <image>
🙌 Works for all, just use this!
docker run -it
stands fordocker run --interactive --tty
. Found this info it inman docker-run
.
Good to know
I proposed to add a new command docker shell. Please leave your thought and vote
Thanks!
For me none of the above commands worked. I ran docker inspect <image>
and got
...
"Cmd": [
"src/service.py"
],
"Entrypoint": [
"python"
],
...
I figured out that docker run -it --entrypoint "" <image> sh
works in this case.
I have this in my Dockerfile to run java 16 (watch out for the modified java.security part)
FROM adoptopenjdk/openjdk16:jre-16.0.1_9-ubi-minimal
ARG RUN_JAVA_VERSION=1.3.8
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'
RUN microdnf install curl ca-certificates \
&& microdnf update \
&& microdnf clean all \
&& mkdir /deployments \
&& chown 1001 /deployments \
&& chmod "g+rwX" /deployments \
&& chown 1001:root /deployments \
&& curl https://repo1.maven.org/maven2/io/fabric8/run-java-sh/${RUN_JAVA_VERSION}/run-java-sh-${RUN_JAVA_VERSION}-sh.sh -o /deployments/run-java.sh \
&& chown 1001 /deployments/run-java.sh \
&& chmod 540 /deployments/run-java.sh \
&& echo "securerandom.source=file:/dev/urandom" >> /opt/java/openjdk/conf/security/java.security
sudo docker run -it --entrypoint /bin/bash node:latest #Thanks to @jghaines
...........9e0d1dcbc703 node:latest "/bin/bash" 12 minutes ago Up 12 minutes trusting_yonath #Thanks to Solomon Hykes
sudo docker trusting_yonath bash -c "echo 'Hello World, again!' >> file.txt" #Thanks to Stackoverflow
...........bin boot dev etc file.txt home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var #Thanks to Stallman&Torvalds
docker run -v $(pwd):/root -it node /bin/bash