docker命令,网络访问(二)

1.docker命令

# docker pull centos  //拉取centos镜像

#docker images

root@bogon ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              9e7424e5dbae        6 days ago          108MB
hello-world         latest              f2a91732366c        8 days ago          1.85kB
tomcat              latest              11df4b40749f        2 weeks ago         557MB
centos              latest              d123f4e55e12        3 weeks ago         197MB

# docker run centos:latest /bin/echo "hello world"
            hello world

各个参数解析:
docker: Docker 的二进制执行文件。
run:与前面的 docker 组合来运行一个容器。
centos 指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
/bin/echo "Hello world": 在启动的容器里执行的命令
以上命令完整的意思可以解释为:Docker 以 centos 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。

2.运行交互式的容器

[root@bogon ~]# docker run -i -t centos /bin/bash
[root@7d9afb5f7a20 /]# ls
anaconda-post.log bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@7d9afb5f7a20 /]# cd root
[root@7d9afb5f7a20 ~]# ls
anaconda-ks.cfg original-ks.cfg
[root@7d9afb5f7a20 ~]# exit
exit

各个参数解析:
-t:在新容器内指定一个伪终端或终端。
-i:允许你对容器内的标准输入 (STDIN) 进行交互。

3.后台运行docker

[root@bogon ~]# docker run -d centos /bin/sh -c "while true; do echo hello world; sleep 1; done"
14a55b4b7a6886e3f8b781e969c5eac6ec3112635cad167418daa440e3502481
[root@bogon ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
14a55b4b7a68        centos              "/bin/sh -c 'while t…"   12 seconds ago      Up 11 seconds                           trusting_feynman
[root@bogon ~]# docker logs 14a55b4b7a68
hello world
hello world
hello world
[root@bogon ~]# docker stop 14a55b4b7a68

14a55b4b7a68
[root@bogon ~]# 
[root@bogon ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

  • 14a55b4b7a6886e3f8b781e969c5eac6ec3112635cad167418daa440e3502481这个长字符串叫做容器ID,对每个容器来说都是唯一的
  • CONTAINER ID:容器ID

    NAMES:自动分配的容器名称

    在容器内使用docker logs命令

  • docker stop 命令来停止容器

4.查找拖取镜像

docker search httpd
docker pull httpd

在使用docker容器时,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要安装vim,可是当你敲apt-get install vim命令时,提示:  
Reading package lists... Done  
Building dependency tree         
Reading state information... Done  
E: Unable to locate package vim  
这时候需要敲:apt-get update,这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。  
等更新完毕以后再敲命令:apt-get install vim命令即可。  

 

docker端口映射

[root@test1 ~]# brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.02427d2aa8da no veth1125f25
virbr0 8000.52540013cc46 yes virbr0-nic
[root@test1 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination 
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:bootps
ACCEPT tcp -- anywhere anywhere tcp dpt:bootps

[root@test1 ~]# docker run -d -P --name mynginx1 nginx
6c6746389a2571220404819183aadb244aabbcddbebe6170451682a860d8041c
[root@test1 ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6c6746389a25 nginx "nginx -g 'daemon ..." 6 seconds ago Up 5 seconds 0.0.0.0:32768->80/tcp mynginx1

指定映射端口

 

 docker run -d -p 91:80 mynginx2 nginx

posted @ 2017-11-29 11:02  cornerxin  阅读(156)  评论(0)    收藏  举报