Docker Basic Command

Docker Basic Command

  • docker信息查看

    1
    docker info
  • 远程拉取镜像

    1
    docker pull [options] NAME[:TAG]
  • 启动镜像

    1
    2
    3
    docker run -it  tomcat:8.0

    docker run --name tomcat-teach-system -it --rm -p 8888:8080 teach-system:latest
  • 删除已经退出运行的容器

    1
    docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
  • 删除镜像

    1
    docker rmi (IMAGE ID) 
  • 强制删除

    1
    docker rmi -f (IMAGE ID)
  • 删除所有未打 tag 的镜像

    1
    docker rmi $(docker images -q | awk '/^<none>/ { print $3 }')
  • 删除所有镜像

    1
    docker rmi $(docker images -q)
  • 根据格式删除所有镜像

    1
    docker rm $(docker ps -qf status=exited)
  • 查看镜像

    1
    docker images
  • 删除none镜像

    1
    docker images |grep none |awk '{print $3}'|xargs docker rmi
  • 删除镜像保留3个

    1
    docker images |grep teach_system |sed -n "3,+100p" |awk '{print $3}' | xargs docker rmi -f
  • 停止镜像

    1
    docker stop (CONTAINER ID)
  • 查看容器运行

    1
    docker ps
  • 查看所有容器,包括停止的。

    1
    docker ps -a
  • 重启已经停止的容器

    1
    docker restart <containerId>
  • 创建自己镜像

1
docker build -t teach-system:latest .
  • 进人容器
1
2
3
4
5
6
docker it -it

docker exec -it jenkins /bin/bash

docker exec -it 2cb05850dd8c /bin/bash

使用Shipyard搭建dockerUI

先进入手动安装页面,找出并拉取需要的 images

这里使用 daocloud 的 docker hub缓存服务

1
2
3
4
5
dao pull rethinkdb
dao pull microbox/etcd
dao pull shipyard/docker-proxy
dao pull swarm
dao pull shipyard/shipyard

会自动安装,默认会在 8080 端口启动 Shipyard,使用 http://\ :8080 即可访问,假如想修改启动的端口可以设置 PORT 环境变量。

1
curl -sSL https://shipyard-project.com/deploy | PORT=6969 bash -s

默认的账号的 admin 密码是 shipyard

docker容器(jenkins) 里调用docker

1
2
3
4
5
6
7
docker run \
-d -p 3000:8080 -p 50000:50000 \
-v /data/jenkins/:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \
--name=jenkins jenkins:latest
  • 杀死所有正在运行的容器.
1
alias dockerkill='docker kill $(docker ps -a -q)'
  • 删除所有已经停止的容器.
1
alias dockercleanc='docker rm $(docker ps -a -q)'
  • 删除所有未打标签的镜像.
1
alias dockercleani='docker rmi $(docker images -q -f dangling=true)'
  • 删除所有已经停止的容器和未打标签的镜像.
1
alias dockerclean='dockercleanc || true && dockercleani'

删除所有未打 dangling 标签的镜像

1
docker rmi $(docker images -q -f dangling=true)

Dockerfile 中使用$env 变量名来占位,外部使用tongy

1、从容器里面拷文件到宿主机?

在宿主机里面执行以下命令

1
docker cp 容器名:要拷贝的文件在容器里面的路径    要拷贝到宿主机的相应路径

假设容器名为testtomcat,要从容器里面拷贝的文件路为:/usr/local/tomcat/webapps/test/js/test.js,

现在要将test.js从容器里面拷到宿主机的/opt路径下面,那么命令应该怎么写呢?

在宿主机上面执行命令

1
docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt

2、从宿主机拷文件到容器里面

在宿主机里面执行如下命令

docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径

假设容器名为testtomcat,现在要将宿主机/opt/test.js文件拷贝到容器里面的/usr/local/tomcat/webapps/test/js路径下面,那么命令该怎么写呢?

  • 在宿主机上面执行如下命令
1
docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js
  • 查看docker磁盘占用情况
1
docker system df
  • 详细查看docker 硬盘占用情况
1
docker system df -v
Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

请我喝杯咖啡吧~

支付宝
微信