1:docker搜索镜像文件
docker search 【镜像文件名称】
//用于查询docker公共容器下有哪些镜像文件可以拉取(下面就拿nginx来举个栗子)
root@iZbp1hh7ckvf1bzchy4otwZ:/# docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 11823 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 1640 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 734 [OK]
linuxserver/nginx An Nginx container, brought to you by Linu... 73
bitnami/nginx Bitnami nginx Docker Image 69 [OK]
tiangolo/nginx-rtmp Docker image with Nginx using the nginx-rt... 51 [OK]
nginxdemos/hello NGINX webserver that serves a simple page ... 23 [OK]
jc21/nginx-proxy-manager Docker container for managing Nginx proxy ... 22
nginx/nginx-ingress NGINX Ingress Controller for Kubernetes 20
jlesage/nginx-proxy-manager Docker container for Nginx Proxy Manager 20 [OK]
schmunk42/nginx-redirect A very simple container to redirect HTTP t... 17 [OK]
crunchgeek/nginx-pagespeed Nginx with PageSpeed + GEO IP + VTS + more... 13
blacklabelops/nginx Dockerized Nginx Reverse Proxy Server. 12 [OK]
centos/nginx-18-centos7 Platform for running nginx 1.8 or building... 11
centos/nginx-112-centos7 Platform for running nginx 1.12 or buildin... 10
nginxinc/nginx-unprivileged Unprivileged NGINX Dockerfiles 9
nginx/nginx-prometheus-exporter NGINX Prometheus Exporter 5
sophos/nginx-vts-exporter Simple server that scrapes Nginx vts stats... 5 [OK]
1science/nginx Nginx Docker images that include Consul Te... 5 [OK]
mailu/nginx Mailu nginx frontend 3 [OK]
pebbletech/nginx-proxy nginx-proxy sets up a container running ng... 2 [OK]
travix/nginx NGinx reverse proxy 2 [OK]
centos/nginx-110-centos7 Platform for running nginx 1.10 or buildin... 0
wodby/nginx Generic nginx 0 [OK]
ansibleplaybookbundle/nginx-apb An APB to deploy NGINX 0 [OK]
root@iZbp1hh7ckvf1bzchy4otwZ:/#
2:docker 拉取镜像文件
docker pull 【镜像文件名称】
//镜像文件名称:上面search数据中的name字段名称
root@iZbp1hh7ckvf1bzchy4otwZ:/# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
1ab2bdfe9778: Pull complete
c88f4a4e0a55: Pull complete
1a18b1b95ce1: Pull complete
Digest: sha256:5411d8897c3da841a1f45f895b43ad4526eb62d3393c3287124a56be49962d41
Status: Downloaded newer image for nginx:latest
root@iZbp1hh7ckvf1bzchy4otwZ:/#
3:查看docker容器里的镜像文件
docker images
root@iZbp1hh7ckvf1bzchy4otwZ:/# docker images
(镜像文件名称) (镜像版本) (镜像文件id) (镜像时间) (镜像大小)
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 4733136e5c3c 19 hours ago 126MB
rabbitmq management 99cbda713eff 9 days ago 177MB
root@iZbp1hh7ckvf1bzchy4otwZ:/#
4:在docker容器里启动nginx
docker run -d --name my-nginx -p 9000:80 nginx
参数:
-d
表示启动的应用nginx在后台运行
--name my-nginx
表示给启动的应用nginx起个别名(my-nginx根据个人命名)
-p 9000:80
-p来指定Docker容器中nginx实例对外开放的端口。(端口号根据实际情况填写。9000和80是用来测试端口号)
第一个9000端口是我自己服务器对外开放的端口,
第二个80端口指对外开放的端口映射到容器里的端口号
nginx
表示启动的镜像名称
root@iZbp1hh7ckvf1bzchy4otwZ:/# docker run -d --name my-nginx -p 9000:80 nginx
a74ae933d5bd5062986589cfc84679472f21c0284cd8de5da77a111da7c8743c
root@iZbp1hh7ckvf1bzchy4otwZ:/#
注:上面一串字符串是nginx容器的id(每次通过镜像文件启动一个容器都会随机生成一个唯一容器id)
5:查看docker里运行的容器
docker ps
root@iZbp1hh7ckvf1bzchy4otwZ:/# docker ps
(容器ID) (镜像名称) (启动镜像命令) (容器创建时间) (容器运行的状态) (端口映射) (容器别名)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a74ae933d5bd nginx "nginx -g 'daemon ..." 13 minutes ago Up 13 minutes 0.0.0.0:9000->80/tcp my-nginx
root@iZbp1hh7ckvf1bzchy4otwZ:/#
6:通过浏览器访问docker里的nginx
47.97.172.196:9000 //服务器名称+对外开放端口
说明成功在docker启动nginx(注:如果你的浏览器访问不了请检查防火墙,对外开放的端口号9000是否开放,如果防火墙已开放仍然无法访问,就登录(阿里云)服务器,去查看安全组端口号是否开放。这样就应该能够访问了)
7:镜像文件和容器的删除
===注:以下命令中的
容器别名 | 容器id
二选一即可
1:停止容器运行
docker stop 容器别名 | 容器id
:2:删除镜像文件生成的应用容器
docker rm 容器别名 | 容器id
注:若删除容器时出现上面error,则表明该容器还在运行,要先停止容器运行
或者docker rm -f 容器别名 | 容器id
强制性删除
Error response from daemon: You cannot remove a running container a74ae933d5bd5062986589cfc84679472f21c0284cd8de5da77a111da7c8743c. Stop the container before attempting removal or force remove
3:删除镜像文件
docker rmi 镜像名称 | 镜像id
或者docker rmi -f 镜像名称 | 镜像id
4:进入nginx容器
docker exec -it 容器别名 | 容器id /bin/bash
进入nginx容器
root@iZbp1hh7ckvf1bzchy4otwZ:/# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a74ae933d5bd nginx "nginx -g 'daemon ..." About an hour ago Up About an hour 0.0.0.0:9000->80/tcp my-nginx
root@iZbp1hh7ckvf1bzchy4otwZ:/# docker exec -it a74ae933d5bd /bin/bash
================================进入容器=====================================
root@a74ae933d5bd:/#
root@a74ae933d5bd:/# cd /etc/nginx/
root@a74ae933d5bd:/etc/nginx# ls
conf.d fastcgi_params koi-utf koi-win mime.types modules nginx.conf scgi_params uwsgi_params win-utf
root@a74ae933d5bd:/etc/nginx# cd conf.d/
root@a74ae933d5bd:/etc/nginx/conf.d# ls
default.conf
root@a74ae933d5bd:/etc/nginx/conf.d# exit
exit
================================退出容器=====================================
root@iZbp1hh7ckvf1bzchy4otwZ:/#
上面root@后面已经变成nginx容器id号了,说明已经进去nginx容器里。
修改nginx容器配置
- 方法一:直接进入容器内部
docker exec -it 容器别名 或 容器id /bin/bash
然后进入目录cd /etc/nginx/conf.d/default.conf
文件可以做常用配置修改,主配置文件在/etc/nginx/nginx.conf
目录 - 方法二:通过文件挂载方式,将方法一中两个配置文件挂载到宿主主机目录下,之后修改宿主机挂载目录即可完成配置文件修改。具体挂载方法百度有很多