docker相关知识(1)

#获取镜像
#获取镜像,生成容器

nginx web服务器,运行一个端口80的网站

#在宿主机上
#1.开启服务器
#2.在服务器上安装好nginx所需依赖关系
#3.安装nginx yum install nginx -y
#4.修改nginx.conf配置文件
#5.启动nginx
#6.客户端去访问nginx
#比较耗时

docker获取nginx镜像

#获取镜像,从配置好的docker镜像站,拉取镜像
#先搜索以下镜像文件
[root@ecs-402020 ~]# docker search nginx
[root@ecs-402020 ~]# docker pull nginx:latest #默认最新

docker查看镜像

[root@ecs-402020 ~]# docker rmi "IMAGE ID" #删除镜像
[root@ecs-402020 ~]# docker image ls

image

docker运行镜像,创建出具体的容器,容器中跑着nginx的服务

[root@ecs-402020 ~]# docker run 参数 镜像的名字/id
#-d 后台运行容器
# -p 80:80 端口映射,宿主机端口:容器内端口
[root@ecs-402020 ~]# docker run -d -p 80:80 nginx

image

[root@ecs-402020 ~]# netstat -tunlp #查看端口运行情况

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2046/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1074/master
tcp6 0 0 :::22 :::* LISTEN 2046/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1074/master
udp 0 0 127.0.0.1:323 0.0.0.0:* 524/chronyd
udp 0 0 0.0.0.0:68 0.0.0.0:* 619/dhclient
udp6 0 0 ::1:323 :::* 524/chronyd

可以看到此时端口80并没有被占用

[root@ecs-402020 ~]# docker run -d -p 80:80 nginx 
4d45bbd3e057aa39d1fd6b9437807e3cd26432f27219999ac9163b29ce9b2d65 #容器id

[root@ecs-402020 ~]# netstat -tunlp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 18747/docker-proxy
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2046/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1074/master
tcp6 0 0 :::80 :::* LISTEN 18753/docker-proxy
tcp6 0 0 :::22 :::* LISTEN 2046/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1074/master
udp 0 0 127.0.0.1:323 0.0.0.0:* 524/chronyd
udp 0 0 0.0.0.0:68 0.0.0.0:* 619/dhclient
udp6 0 0 ::1:323 :::* 524/chronyd

此时可以看到已经有了

[root@ecs-402020 ~]# docker ps -a 

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4d45bbd3e057 nginx "/docker-entrypoint.…" 4 minutes ago Up 4 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp stupefied_mclean

这时访问服务器公网地址:80 就有welcome nginx

停止容器docker stop 容器id

开始容器docker restart 容器id

[root@ecs-402020 ~]# docker stop 4d45bbd3e057 
[root@ecs-402020 ~]# docker restart 4d45bbd3e057

docker生命周期

dockerfile:一个构建docker image的脚本

image

image