Docker练习安装
Docker 安装Nginx
# 1、搜索镜像 search 建议去docker hub网站搜索,可以看到帮助文档
[root@localhost /]# docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 16808 [OK]
linuxserver/nginx An Nginx container, brought to you by LinuxS… 168
bitnami/nginx Bitnami nginx Docker Image 126 [OK]
ubuntu/nginx Nginx, a high-performance reverse proxy & we… 48
bitnami/nginx-ingress-controller Bitnami Docker Image for NGINX Ingress Contr… 18 [OK]
rancher/nginx-ingress-controller 10
clearlinux/nginx Nginx reverse proxy server with the benefits… 4
ibmcom/nginx-ingress-controller Docker Image for IBM Cloud Private-CE (Commu… 4
bitnami/nginx-ldap-auth-daemon 3
rancher/nginx-ingress-controller-defaultbackend 2
bitnami/nginx-exporter 2
circleci/nginx This image is for internal use 2
vmware/nginx 2
rancher/nginx 1
vmware/nginx-photon 1
bitnami/nginx-intel 1
wallarm/nginx-ingress-controller Kubernetes Ingress Controller with Wallarm e… 1
rancher/nginx-ssl 0
continuumio/nginx-ingress-ws 0
rancher/nginx-ingress-controller-amd64 0
rancher/nginx-conf 0
ibmcom/nginx-ppc64le Docker image for nginx-ppc64le 0
ibmcom/nginx-ingress-controller-ppc64le Docker Image for IBM Cloud Private-CE (Commu… 0
kasmweb/nginx An Nginx image based off nginx:alpine and in… 0
rancher/nginx-proxy
# 2、下载镜像 pull
[root@localhost /]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
a2abf6c4d29d: Pull complete
a9edb18cadd1: Pull complete
589b7251471a: Pull complete
186b1aaa4aa6: Pull complete
b4df32aa5a72: Pull complete
a0bcbecc962e: Pull complete
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
# 3、运行测试
[root@localhost /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 4 months ago 141MB
centos latest 5d0da3dc9764 8 months ago 231MB
# -d 后台运行
# --name 给容器命名
# -p 容器主机端口,容器内部端口
[root@localhost /]# docker run -d --name nginx01 -p 3344:80 nginx
2bf073758788822c895ddeaa977d16b5107701b2e645f99e8a27aa71554f0995
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2bf073758788 nginx "/docker-entrypoint.…" 8 seconds ago Up 7 seconds 0.0.0.0:3344->80/tcp, :::3344->80/tcp nginx01
91e922077534 centos "/bin/bash" 12 days ago Up About an hour silly_elion
[root@localhost /]# curl localhost:3344
# 4、进入容器
[root@localhost /]# docker exec -it nginx01 /bin/bash
root@2bf073758788:/# ls
bin dev docker-entrypoint.sh home lib64 mnt proc run srv tmp var
boot docker-entrypoint.d etc lib media opt root sbin sys usr
root@2bf073758788:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@2bf073758788:/# cd /etc/nginx
root@2bf073758788:/etc/nginx# ls
conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params
root@2bf073758788:/etc/nginx#
端口暴露的概念图
思考问题?
我们每次改动nginx配置文件,都需要进入容器内部?这样十分的麻烦,是否可以在容器外部提供一个映射路径,达到在容器外部修改文件,容器内部就可以自动修改文件内容?-v 数据卷!
Docker 安装Tomcat
# 官方的使用
docker run -it --rm tomcat:9.0
# 之前的启动都是后台启动方式,停止了容器之后,容器还是可以查到, docker run -it --rm,一般用来测试,用完即刻删除
# 下载后再启动的方式
docker pull tomcat
# 启动运行
docker run -d -p 8888:8080 --name tomcat01 tomcat
# 测试访问没有问题
# 进入容器
[root@localhost ~]# docker exec -it tomcat01 /bin/bash
# 发现问题:1、Linux命令少了,2、没有webapps.
# 因为时阿里云的镜像的原因,默认时下载的最小的tomcat镜像,所有的不必要的都剔除了,保证最小的环境可用
思考问题?
我们以后要部署项目,如果每次都要进入容器是不是十分麻烦?我要是可以再容器外部提供一个映射路径,webapps,我们再外部放置项目,就自动同步到内部就好了!