设为首页 收藏本站
查看: 1281|回复: 0

[经验分享] Docker相关命令应用

[复制链接]

尚未签到

发表于 2019-2-22 06:22:04 | 显示全部楼层 |阅读模式
  Docker命令   


  • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
  • -d: 后台运行容器,并返回容器ID;
  • -i: 以交互模式运行容器,通常与 -t 同时使用;
  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • --name="nginx-lb": 为容器指定一个名称;
  • --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
  • --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
  • -h "mars": 指定容器的hostname;
  • -e username="ritchie": 设置环境变量;
  • --env-file=[]: 从指定文件读入环境变量;
  • --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
  • -m :设置容器使用内存最大值;
  • --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
  • --link=[]: 添加链接到另一个容器;
  • --expose=[]: 开放一个端口或一组端口;

1.Docker常用命令讲解进程
docker images 查看本地镜像仓库
docker rmi [image id]  删除本地镜像仓库中的镜像image id为需要删除的镜像ID
docker pull [image name]:[tag]  下载镜像到本地镜像仓库,image name镜像名称,tag镜像版本
docker search [keyword]   查看本地镜像内容,keyword为镜像名称的关键字,不用输入全部镜像名。
docker run -d [image]    把镜像执行成虚拟环境
docker build -t [image name] .

docker build -t [image name] -f [dockerfile] .
docker tag [original image name] [new image name]
docker tag [original image name]:[tag] [new image name]:[tag]
docker run -it [image] bash    把镜像执行成虚拟环境,并直接进入该docker虚拟环境中(等同于docker exec -it [image] bash)
docker exec -it [image] bash   把镜像执行成虚拟环境,并直接进入该docker虚拟环境中
docker run -d -p 8080:80 nginx  访问外部的iP端口是8080其实就是对应内部ip的80端口执行的是nginx动作
docker run -d v /data:/data nginx  把服务器的资料挂载到docker内部的资料,使得在docker内部使用。
docker run -d -e MYENV=test nginx  把服务器的环境变量变成docker内部的环境。
docker network create mynet1  创建网卡命名为mynet1
docker ps      查看正在执行中docker的container容器,
docker ps -p     -p只显示正在执行中container的id号
docker ps -a     -a显示所有的container,包括停止的和正在运行的
docker start [instance-id]  启动实例,instance-id实例ID号
docker stop [instance-id] 停止实例,instance-id实例ID号
docker attach [instance-id]  使得两个窗口的动作一致
docker rm [instance-id]   删除正在运行的实例instance,需先停止该实例后再删除
docker rm -f [instance-id] 强制删除正在运行的实例instance,勿需停止该实例可直接删除该实例
docker rm -f `docker ps -q` 删除所有正在执行的container,``把该执行结果作为前面执行删除操作的参数来调用。
[实例]

[root@docker ~]# docker ps  查看正在执行的container
CONTAINER ID    IMAGE       COMMAND          CREATED        STATUS        PORTS           NAMES
378e85b45f67    nginx     "nginx -g 'daemon of  28 minutes ago     Up 28 minutes    80/tcp        clever_turing
7fad893a54c4    nginx     "nginx -g 'daemon of   29 minutes ago    Up 29 minutes   0.0.0.0:8080->80/tcp   thirsty_yonath
[root@docker ~]# docker rm -f `docker ps -q `  删除所有正在执行的container
378e85b45f67
7fad893a54c4
[root@docker ~]# docker ps  查看正在执行的container,已经被全部删除
CONTAINER ID    IMAGE       COMMAND      CREATED      STATUS       PORTS         NAMES
[root@docker ~]# docker ps -a -q  查看所有的container,不管是正在执行的还是被删除的,-q只显示instance-id
bebf3f5b8112
0577c4b78979
1d26ba3448f0
3e05321bdbca
4cb7712e3dd7
[root@docker ~]# docker rm -f `docker ps -q -a ` 强制删除所有的container,不管是停止的还是在运行的。
bebf3f5b8112
0577c4b78979
1d26ba3448f0
3e05321bdbca
4cb7712e3dd7
[root@docker ~]# docker ps -a -q  再次查看已经没有container了,都已经被删除了。
2.命令格式:
docker run -it --name mydocker1 [image1] bash #对image1取个别名为mydocker1
docker run -it --link mydocker1:mydocker1 [image2] bash  把两个image连通,使得image1和image2可以互相通讯
3.命令功能:
把两个container相互连通通信
3.命令参数:
-it --name 先对第一个image1取名称
-it --link 连接到第一个image,相互之间可以通讯


5.命令实例:
实例一
首先打开一个窗口输入以下命令,打开一个docker窗口1

    [root@docker ~]# docker run -it --name node1 node bash
  root@f2765d5fd9c8:/#
再次打开另一个窗口2,输入以下命令:
[root@docker ~]# docker run -it --link node1:node1 node bash
  root@e85d11098482:/#
  在第二个docker窗口下输入以下命令:
  root@e85d11098482:/# ping node1  显示node1的ip地址是172.16.0.16
  PING node1 (172.17.0.16): 56 data bytes
  64 bytes from 172.17.0.16: icmp_seq=0 ttl=64 time=0.110 ms
  64 bytes from 172.17.0.16: icmp_seq=1 ttl=64 time=0.073 ms
  64 bytes from 172.17.0.16: icmp_seq=2 ttl=64 time=0.075 ms
  64 bytes from 172.17.0.16: icmp_seq=3 ttl=64 time=0.094 ms
  ^C--- node1 ping statistics ---
  4 packets transmitted, 4 packets received, 0% packet loss
  round-trip min/avg/max/stddev = 0.073/0.088/0.110/0.000 ms
  在第一个docker窗口下输入以下命令,查看该窗口的IP地址正是node1的IP地址
  root@f2765d5fd9c8:/# ip addr
  1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 scope host lo
  valid_lft forever preferred_lft forever
  inet6 ::1/128 scope host
  valid_lft forever preferred_lft forever
  34: eth0@if35:  mtu 1500 qdisc noqueue state UP group default
  link/ether 02:42:ac:11:00:10 brd ff:ff:ff:ff:ff:ff
   inet 172.17.0.16/16 scope global eth0
  valid_lft forever preferred_lft forever
  inet6 fe80::42:acff:fe11:10/64 scope link
  valid_lft forever preferred_lft forever
  实例二
  attach实例,通过attach使得两个窗口显示一模一样:
  [root@docker docker]# docker run -it nginx bash
  root@0f8a31139121:/# ls
  bin  boot  devetc  home  liblib64  media  mnt  optproc  root  run  sbin  srv  sys  tmp  u
  root@0f8a31139121:/#
  [root@docker ~]# docker ps  -q  先查看正在运行的docker进程
  0f8a31139121
  [root@docker ~]# docker attach 0f8a31139121
  ls
  bin  boot  devetc  home  liblib64  media  mnt  optproc  root  run  sbin  srv  sys  tmp  u
  root@0f8a31139121:/#
  实例三:
  docker network create mynet1实例:
  [root@docker docker]#docker network create mynet2  建立网卡,命名为mynet2
  Error response from daemon: network with name mynet2 already exists   #提示该名称的网卡已存在
  [root@docker docker]# docker network create mynet1
  647cb9fd3d7162da73aaf12eba4dbcd88b7c0790f6eda617f6635b5c4eb13f7e
  [root@docker docker]# docker network create mynet3
  aa6f9827251c45cd88f308108bd78bb6ef719ed04d37213277217c95b615f17c
  [root@docker docker]# docker run -d --name c1 --net mynet1 nginx  打开nginx,并命名为c1,且设定网卡为mynet1刚建立的网卡
  b772bb24c6457d6c0528a16d3820841f06d934a10809dd266862687222344134
  [root@docker docker]#  docker run -d --name c2 --net mynet2 nginx
  66221df665551e658a81e169611d32179d119fc17b684a6ba9bca1b16b2a5b3f
  [root@docker docker]# docker run -d --name c3 nginx  打开nginx程序,并命名为c3,但不指定网卡。
  54fc6b30e9838f0e261ba82562de5a2a00e07667b46baf2f8f6f701107f80251
  [root@docker docker]# docker ps
  CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
  54fc6b30e983        nginx               "nginx -g 'daemon off"   3 seconds ago       Up 2 seconds        80/tcp             c3
  66221df66555        nginx               "nginx -g 'daemon off"   19 seconds ago      Up 18 seconds       80/tcp             c2
  b772bb24c645        nginx               "nginx -g 'daemon off"   28 seconds ago      Up 27 seconds       80/tcp             c1
  [root@docker docker]# docker exec -it c1 bash  #直接进入刚才建立的c1 bash
  root@b772bb24c645:/#
  实例四:
  [root@docker docker]#docker rm -f `docker ps -q -a`
  54fc6b30e983
  66221df66555
  b772bb24c645
  [root@docker docker]# docker run -d -p 5000:5000 --name registry registry:2
  Unable to find image 'registry:2' locally
  2: Pulling from library/registry
  9f9a7687cb91: Pull complete
  607d8cb26263: Pull complete
  305c4b3247bc: Pull complete
  09fd65a9f827: Pull complete
  5614c459bd0f: Pull complete
  7d72978aa116: Pull complete
  5a7694fedddd: Pull complete
  37213f6a1a3f: Pull complete
  6bb73e9857ff: Pull complete
  8fe0c76b17fc: Pull complete
  Digest: sha256:6cd209f81e188e8eaa13fad9b670fb1a4e9c7776a73b3881b69834fe5ddfb193
  Status: Downloaded newer image for registry:2
  c88ae6df9e41f06dbfc283585269ed7df0e23621b2357d2e3b73622565512048
  [root@docker docker]# docker ps
  CONTAINER ID        IMAGE               COMMAND                  CREATED           STATUS                PORTS                        NAMES
  c88ae6df9e41       registry:2       "/entrypoint.sh /etc/"   10 seconds ago     Up 8 seconds   0.0.0.0:5000->5000/tcp   registry
  [root@docker docker]# docker images
  REPOSITORY          TAG             IMAGE ID            CREATED             VIRTUAL SIZE
  nginx               latest              e076c61a6bf2        2 weeks ago         108.9 MB
  node                latest              46ecedfa82d3        2 weeks ago         672.8 MB
  registry            2                   8fe0c76b17fc        3 months ago        33.26 MB
  [root@docker docker]# docker tag nginx localhost:5000/nginx
  [root@docker docker]# docker images
  REPOSITORY             TAG               IMAGE ID            CREATED             VIRTUAL SIZE
  localhost:5000/nginx   latest        e076c61a6bf2        2 weeks ago         108.9 MB
  nginx                  latest              e076c61a6bf2        2 weeks ago         108.9 MB
  node                   latest              46ecedfa82d3        2 weeks ago         672.8 MB
  registry               2                   8fe0c76b17fc        3 months ago        33.26 MB
  [root@docker docker]# docker push localhost:5000/nginx
  The push refers to a repository [localhost:5000/nginx] (len: 1)
  e076c61a6bf2: Pushed
  235c9b4b2c82: Pushed
  8bc1215bde0f: Pushed
  abc60fac2aea: Pushed
  latest: digest: sha256:9a032ad6687bd8a621c6d7dbd29163eff9c35d5e77c04ddef9da52c63c72a934 size: 9566




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-675419-1-1.html 上篇帖子: 第九篇:Docker镜像仓库 下篇帖子: 解决Docker Hub仓库下载镜像网络异常问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表