docker常用命令

docker 镜像和container

  1. 查看已有的docker镜像
    docker images

  2. 查看镜像列表
    docker search nginx

  3. 启动一个容器
    – 基于hello-world镜像启动一个容器,如果本地没有镜像会从公网拉取过来,这次做为测试用
    docker run hello-world
    docker run --name=con_name images
    –name #设置容器名

  4. 导出镜像
    docker save -o image_name.tar image_name

  5. 创建一个容器的同时进入这个容器
    docker run -it --name=con_name images
    -it #在启动之后进入这个容器

  6. 创建一个容器,放入后台运行,把物理机80端口映射到容器的80端口
    docker run -d -p 81:80 image_name
    #-p 参数说明
    -p hostPort:containerPort
    -p ip:hostPort:containerPort
    -p ip::containerPort
    -p hostPort:containerPort:udp

  7. 查看正在运行的容器
    docker ps

  8. 查看所有的容器

  9. docker attach con_name
    退出容器
    –方法一
    exit
    –方法二
    ctrl+p && ctrl+q (一起按,注意顺序,退出后容器依然保持启动状态)
    删除容器

  10. docker rm con_name
    #强制删除需要加-f,不加-f不能删除正在运行中的容器,非常危险,最好不用

  11. 查看docker网络
    [root@docker ~]# docker network ls
    NETWORK ID NAME DRIVER SCOPE
    3f91f2097286 bridge bridge local
    d7675dbd247c docker_gwbridge bridge local
    5b36c7e947fd host host local
    ims6qkpikafu ingress overlay swarm
    85ba10e7ef79 none null local
    创建一个docker网络my-docker

  12. docker network create -d bridge
    –subnet=192.168.0.0/24
    –gateway=192.168.0.100
    –ip-range=192.168.0.0/24
    my-docker

  13. 利用刚才创建的网络启动一个容器
    docker run --network=my-docker --ip=192.168.0.5 -itd --name=con_name -h lb01 image_name
    –network #指定容器网络
    –ip #设定容器ip地址
    -h #给容器设置主机名

  14. 查看容器pid
    – 方法一:
    docker top con_name
    – 方法二:
    docker inspect --format “{{.State.Pid}}” con_name

  15. docker save and load
    保存镜像
    命令
    docker save [options] images [images…]
    示例
    docker save -o mynetcore.tar mynetcore:v1

    docker save > mynetcore.tar mynetcore:v1
    其中-o和>表示输出到文件,mynetcore.tar为目标文件,mynetcore:v1是源镜像名(name:tag)
    传递
    保存下来得镜像文件需要将jar文件进行服务器的传递,在网上搜索了好多种,像rcp、scp、ftp、rsync等等吧,尝试过后觉得还是rsync比较好。
    示例
    rsync -av --progress mynetcore.tar root@49.233.9.236:~/
    我只需要从一台服务器推送文件到另一台服务器,他还可以实现拉取,文件同步等等功能,自己去了解吧。
    加载镜像
    命令
    docker load [options]
    示例
    docker load -i mynetcore.tar

    docker load < mynetcore.tar
    其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息

  16. 停止容器运行
    docker stop 容器ID或容器名
    参数 -t:关闭容器的限时,如果超时未能关闭则用kill强制关闭,默认值10s,这个时间用于容器的自己保存状态
    docker stop -t=60 容器ID或容器名

  17. docker kill
    docker kill 容器ID或容器名 :直接关闭容器
    由此可见stop和kill的主要区别:stop给与一定的关闭时间交由容器自己保存状态,kill直接关闭容器
    想更进一步了解处理机制的可以看下面这篇文章,比较详细但是需要其他方面的
    https://www.jb51.net/article/96617.htm

  18. 重启一个容器
    docker restart 容器ID或容器名 :不管容器是否启动,直接重启容器
    首先 docker ps 查看正在运行的容器信息,显示2分钟前启动运行
    docker restart 59ec 重启容器
    再次 docker ps 查看容器信息 显示 2秒前启动运行

docker restart 参数
-t:关闭容器的限时,如果超时未能关闭则用kill强制关闭,默认值10s,这个时间用于容器的自己保存状态

Docker common comands

docker 仓库
  1. 登录
    docker login --username=13823218155 registry.cn-hangzhou.aliyuncs.com
  2. 推送
    docker push registry.cn-hangzhou.aliyuncs.com/lele123/hello
  • docker push lilelr/hadoop2.7-v1
  1. 打tag
    docker tag mirrorgcrio/pause-arm64:3.0 k8s.gcr.io/pause-arm64:3.0
    docker tag lele/lele_hadoopv1 lilelr/lele_hadoop2.7:1.0
    docker tag img-dnn-v1 lilelr/img-dnn-v1:1.0

  2. pull 拉取
    docker pull xiaoxu780/kube-cross:v1.11.2-1
    docker pull mirrorgcrio/pause-arm64:3.0

docker pull mirrorgcrio/pause-arm64:3.2

  1. 查看镜像大小
    docker history node-vanilla
1. systemctl 方式

守护进程重启
sudo systemctl daemon-reload
重启docker服务
sudo systemctl restart docker
关闭docker
sudo systemctl stop docker

2. service 方式

重启docker服务
sudo service docker restart
关闭docker
sudo service docker stop

3. 控制命令
  • docker 制作自己的image

  • docker commit -m ‘镜像描述’ -a ‘制作者’ 容器名 镜像名

  • docker commit -m ‘img-dnn tailbench’ -a ‘lele’ nifty_snyder img-dnn-v1

  • docker commit -m ‘masstree-v1 tailbench’ -a ‘lele’ funny_neumann masstree-v1

  • docker commit -m ‘specjbb-v1 tailbench’ -a ‘lele’ distracted_galois specjbb-v1

  • docker commit -m ‘hadoop2.7-hibench-v1’ -a ‘lele’ a53dabf070a2 hadoop2.7-hibench-v1

  • 运行容器

    • docker run silo-v3 sh -c “cd /silo && ./run.sh”

    • docker run -it silo

    • docker run -it masstree-v1

    • docker run --hostname slave4 -it hadoop2.7-v1

    • docker run --hostname p09 -it hadoop2.7-v1

    • docker exec -it a09ac842ebb8 /bin/bash

    • docker run -p 11211:11211 --name memcache hub-mirror.c.163.com/library/memcached

  • 查看正在运行的容器

    • docker ps -a
  • 删除容器
    docker rm redis
    - 查看容器资源使用状态
    - docker stats
    - 删除容器镜像
    docker rmi -f fd484f19954f

  • migration of docker

    • docker save app:1.0 | gzip | DOCKER_HOST=ssh://user@remotehost docker load
    • docker save ubuntu:14.04 | gzip | DOCKER_HOST=ssh://lemaker@p10 docker load
    • sudo docker save xapian-v1 > ./xapian-v1.tar
    • docker save img-dnn-v1 > ./img-dnn-v1.tar
    • silo-v4
    • docker save silo-v4 > ./silo-v4.tar
    • docker save hadoop2.7-v1 > ./hadoop2.7-v1.tar
    • docker load < ./img-dnn-v1.tar - load the image on the other host
    • docker load < ./specjbb-v1.tar
    • docker export --output=“alpine-t.tar” 35f34fabfa84
  • 批量操作

    • 启动所有容器
    • docker start $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)
    • 关闭所有容器
    • docker stop $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)
    • 删除所有容器
    • docker rm $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)
    • docker rm $(docker ps -q -a)
    • docker rmi $(docker images | grep “none” | awk ‘{print $3}’)
  • resposity

    • docker tag username/repository:tag # Tag for upload to registry
    • docker push username/repository:tag # Upload tagged image to registry
    • docker run username/repository:tag # Run image from a registry
4. 更新和查看容器资源
  • docker container top Docker - 查看容器进程在宿主机的 PID
  • docker update --cpus 8 -m 3G --memory-swap 3G 387dbda70f60
    - docker update 6d218433215e --cpus 1 -m 200M --memory-swap 200M
    - docker update 48857a9d95af --cpus 2 -m 4096M --memory-swap 4096M
    - docker update 3863cf3989b2 --cpus 2 -m 300M --memory-swap 300M
    - docker container update --cpus 1 -m 200M --memory-swap 200M $(docker container ls -a -q)
  • docker inspect youthful_gates | grep -E -i “CPU|Memory”
  • docker inspect 3863cf3989b2 | grep -E -i “CPU|Memory”
  • docker inspect my-memcache | grep Memory
  • docker container ls -q -Only display container IDs
  • docker container ls -a # List all containers, even those not running
  • docker container stop # Gracefully stop the specified container
  • docker container kill # Force shutdown of the specified container
  • docker container rm # Remove specified container from this machine
  • docker container rm $(docker container ls -a -q) # Remove all containers
  • docker image ls -a # List all images on this machine
  • docker image rm # Remove specified image from this machine
  • docker image rm $(docker image ls -a -q) # Remove all images from this machine
  • docker login # Log in this CLI session using your Docker credentials
5. 主机和容器交互
  • In order to copy a file from a container to the host, you can use the command
  • docker cp :/file/path/within/container /host/path/target
    Here’s an example:
    • sudo docker cp 19f9b96728f8:/tailbench/lats.bin .

    • sudo docker cp ceb3d30c21b1:/silo/lats.bin .

    • The first example copies a file from the /tmp directory on the host machine into the Grafana install directory in the grafana container:

    • **docker cp ./HiBench-7.0.tar.gz a53dabf070a2:/home/lemaker/open-source/ **

    • docker cp ./specjbb cool_bell:/

    • docker cp ./spark-2.3.0-bin-hadoop2.7 heuristic_gagarin:/home/open-source/

    • docker cp ./hadoop heuristic_gagarin:/home/open-source/hadoop-2.7.7/etc/

    • docker cp ./scripts-chameleon heuristic_gagarin:/home/

    • docker cp ./tailbench.inputs/shore frosty_varahamihira:/tailbench.inputs/

    • docker run -d -p 26:22 lilelr/ssh_link:v1

    • ssh test@127.0.0.1 -p 26

6. tailbench
  • python3 /silo/parselats.py /silo/lats.bin

  • python3 …/parselats.py ./lats.bin

7. docker 镜像源配置

vi /etc/docker/daemon.json
{
“registry-mirrors”: [“http://hub-mirror.c.163.com”]
}

8. 容器构建

  • docker build -t lele_hadoop .

  • RUN groupadd --gid 5000 newuser
    && useradd --home-dir /home/newuser --create-home --uid 5000
    –gid 5000 --shell /bin/sh --skel /dev/null newuser

  • docker build -t barbell .

  • docker -p 6379:6379 -p 6379:6379

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值