Docker常用命令


一.远程仓库

1.login/logout登录/退出

$ docker login daoclound.io
$ cat ~/.docker/config.json
$ docker logout       

2.search搜索镜像库

$ docker serach apline
# alpine latest caf27325b298 5 months ago 5.529 MB

3.pull下载镜像

$ docker pull apline    #若不指定标签,则拉取latest版本

4.push推送镜像

$ docker push sybs/alpine:v1.0


二.本地镜像

  • 任务对镜像或容器的操作,都可以使用镜像/容器的ID或名称

1.images查看本地镜像

$ docker images
# REPOSITORY  TAG       IMAGE ID       CREATED        SIZE
# alpine      latest    caf27325b298   5 months ago   5.529 MB

2.build构建本地镜像

$ docker build -f ./Dockerfile -t sybs/alpine:v1.0 .  #Dockerfile示例如下
#<<<<<<<<<<修改配置<<<<<<<<<<<
FROM alpine
WORKDIR /app
CMD /bin/sh
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

3.history查看镜像构建历史

$ docker history sybs/alpine:v1.0

4.rmi删除本地镜像

$ docker rmi -f caf273         #根据ID删除
$ docker rmi -f alpine:latest  #根据镜像名删除


三.容器管理

1.ps查看容器

$ docker ps          #查看活动的容器进
$ docker ps -qa      #查看所有容器(包括已停止的)

2.run从镜像拉起一个容器

  • 参数:-t:伪终端-i:标准输入(交互模式)-d:守护进程
$ docker run -ti --name myalpine alpine:latest      #交互模式
$ docker run -tid --name myalpine alpine:latest     #守护进程模式
$ docker run alpine /bin/sh -c "while true;do echo hello;sleep 1;done"  #外部执行命令

八小时差问题: 容器使用UTC时间(Coordinated Universal Time,标准时间),与CST时间(China Shanghai Time,东八区) 有八小时时差

# 挂载宿主机时间
$ docker run --rm alpine date
$ docker run -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone --rm alpine date

3.start/stop/restart启动/停止/重启

$ docker start myalpine    
$ docker stop myalpine    
$ docker restart myalpine 

4.attach连接容器

$ docker attach myapline
#连续输入Ctl+P,Ctl+Q退出

5.exec从外部运行容器命令

$ docker exec myalpine echo "hello world"  #容器必须是已运行状态
$ docker exec -ti myalpine /bin/sh         #外部终端交互,exit退出交互模式

6.rm删除容器

$ docker rm -f myalpine     
$ docker rm -f `docker ps -qa`     #删除所有容器
$ docker rm -f $(docker ps -qa)    #同上

7.top查看进程信息

$ docker top myalpine    

8.kill杀死容器进程

$ docker kill myalpine    

9.commit从容器提交(备份)一个新镜像

$ docker commit -a "author" -m "message" myalpine myalpine-bak:v1.0


四.辅助命令

1.logs查看容器日志

$ docker logs myalpine

2.inspect检查(镜像、容器等配置信息)

$ docker inspect apline    #镜像ID、镜像名、容器名、容器ID
$ docker inspect --format="{{.NetworkSettings.IPAddress}}" myalpine  #查看容器IP

3.port查看端口映射

$ docker port myalpine

4.iptables端口映射

  • 方式一:nat转发
# 将宿主机对8443端口映射为容器的443端口
$ host_port=8443 && dk_ip=172.17.0.1 && dk_port=443  #定义变量
$ iptables -t nat -A DOCKER -p tcp --dport $host_port -j DNAT --to-destination $dk_ip:$dk_port
$ iptables -t nat -A POSTROUTING -j MASQUERADE -p tcp --source $dk_ip --destination $dk_ip --dport $dk_port
$ iptables -A DOCKER -j ACCEPT -p tcp --destination $dk_ip --dport $dk_port

# 删除端口映射,只需把-A换成-D 
  • 方式二:修改配置,https://www.213.name/archives/1329
$ docker stop xxx
$ vim /var/lib/docker/containers/{container_id}/hostconfig.json
#<<<<<<<<<<<<<<<<<<修改配置<<<<<<<<<<<<<<<<<<<
"PortBindings": {
     "80/tcp": [
             {
             "HostIp": "",
             "HostPort": "8443"//宿主机port
             }
         ]
     },
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
$ service docker restart
$ docker start xxx

5.cp文件拷贝

$ docker cp ~/a.txt myalpine:/opt   #从宿主机到容器
$ docker cp myalpine:/opt/a.txt ~/  #从容器到宿主机

6.save/load镜像备份/还原(包含镜像和容器历史记录、元数据信息)

$ docker save [image] -o file.tar
$ docker load -i file.tar             

7.export/inport容器导出/导入快照

$ docker export -o ~/myalpine.snapshot myalpine
$ docker import ~/myalpine.snapshot sybs/alpine:v1.1

save和export的区别:
docker save保存的是镜像(image),docker export保存的是容器(container);
docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。

8.volume挂载数据卷

$ docker volume -h

# 1.指定具体目录(对应到容器的/opt目录)
$ docker run -tid --name myalpine -v /Users/sybs/opt:/opt alpine:latest

# 2.手动创建valume
$ docker volume create my-volume
$ docker run -ti -v my-volume:/opt alpine sh

# 3.自动创建valume(找不到时自动创建)
$ docker run -tid --name myalpine -v my-volume:/opt alpine:latest
$ docker volume inspect my-volume    #查看自动创建的valume位置


五.系统命令

1.info系统信息

$ docker info

2.network查看网络信息

$ docker network ls

3.help帮助

$ docker -h
$ docker network -h

4.version版本信息

$ docker version

5.Docker配置文件

$ cat /etc/sysconfig/docker
$ cat /var/log/messages

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值