安装一个nginx服务器镜像

首先去https://c.163.com/hub\#/m/search/?keyword=nginx找到下载地址

再进行拉取:

root@jimo:/home/workspace/docker# docker pull hub.c.163.com/library/nginx:latest
latest: Pulling from library/nginx
5de4b4d551f8: Pull complete 
d4b36a5e9443: Pull complete 
0af1f0713557: Pull complete 
Digest: sha256:f84932f738583e0169f94af9b2d5201be2dbacc1578de73b09a6dfaaa07801d6
Status: Downloaded newer image for hub.c.163.com/library/nginx:latest
root@jimo:/home/workspace/docker# docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
hub.c.163.com/library/nginx   latest              46102226f2fd        2 weeks ago         109MB
hello-world                   latest              48b5124b2768        3 months ago        1.84kB
root@jimo:/home/workspace/docker#

后台运行此镜像

docker ps查看进程

root@jimo:/home/workspace/docker# docker run -d hub.c.163.com/library/nginx
79e39a24d9b0cf6ded8b799ca08bc92f9bc76f4b5297465970aeb4c4d606ea31
root@jimo:/home/workspace/docker# docker ps
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS               NAMES
79e39a24d9b0        hub.c.163.com/library/nginx   "nginx -g 'daemon ..."   5 seconds ago       Up 5 seconds        80/tcp              confident_payne
root@jimo:/home/workspace/docker#

进入容器查看

看看exec用法:

# docker exec --help

Usage:    docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

Run a command in a running container

Options:
  -d, --detach               Detached mode: run command in the background
      --detach-keys string   Override the key sequence for detaching a container
  -e, --env list             Set environment variables
      --help                 Print usage
  -i, --interactive          Keep STDIN open even if not attached
      --privileged           Give extended privileges to the command
  -t, --tty                  Allocate a pseudo-TTY
  -u, --user string          Username or UID (format: <name|uid>[:<group|gid>])

再查看:79是nginx的ID(79e39a24d9b0cf6ded8b799ca08bc92f9bc76f4b5297465970aeb4c4d606ea31)的前缀,这里可以唯一标识

/home/workspace/docker# docker exec -it 79 bash
root@79e39a24d9b0:/# ls
bin   dev  home  lib32    libx32    mnt  proc  run     srv  tmp  var
boot  etc  lib     lib64    media    opt  root  sbin  sys  usr
root@79e39a24d9b0:/# which nginx
/usr/sbin/nginx
root@79e39a24d9b0:/# ps -ef
bash: ps: command not found
root@79e39a24d9b0:/#

在容器内是一个linux系统,有基本的linux命令

端口映射

docker和主机的端口映射有3种:bridge(有自己的ip)、host(和主机使用同一块网卡)、none

现在我们停掉nginx:

root@jimo:/home/workspace/docker# docker stop 79
79
root@jimo:/home/workspace/docker# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

进行端口80的映射到主机的8080

root@jimo:/home/workspace/docker# docker run -d -p 8080:80 hub.c.163.com/library/nginx
f6364c86e4e83427cfdeff89bc67106387f7f14a6cd2ca0c0dfd3323c75b8679
root@jimo:/home/workspace/docker# docker ps
CONTAINER ID        IMAGE                         COMMAND                  CREATED             
STATUS              PORTS                  NAMES
f6364c86e4e8        hub.c.163.com/library/nginx   "nginx -g 'daemon ..."   9 seconds ago       Up 8 seconds        
0.0.0.0:8080->80/tcp   xenodochial_pasteur

可看到映射:0.0.0.0:8080->80/tcp

这时候在本机访问:http://localhost:8080/可看到nginx的欢迎界面

全部端口映射

使用-P选项:

root@jimo:/home/workspace/docker# docker run -d -P hub.c.163.com/library/nginx
e4f1886f8fd0ab0c57c119a51559dc5453990f7e9df1820312484ff6e5660b64
root@jimo:/home/workspace/docker# docker ps
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                   NAMES
e4f1886f8fd0        hub.c.163.com/library/nginx   "nginx -g 'daemon ..."   3 seconds ago       Up 2 seconds        0.0.0.0:32768->80/tcp   festive_easley

可看到映射到了32768:0.0.0.0:32768->80/tcp

# netstat -na|grep 32768
tcp6       0      0 :::32768                :::*                    LISTEN     
tcp6       0      0 ::1:49208               ::1:32768               ESTABLISHED
tcp6       0      0 ::1:32768               ::1:49208               ESTABLISHED
tcp6       0      0 ::1:49206               ::1:32768               ESTABLISHED
tcp6       0      0 ::1:32768               ::1:49206               ESTABLISHED

results matching ""

    No results matching ""