docker的介绍和安装
一.docker 介绍
docker 可以粗糙的理解为虚拟机,但是确实不是真正的虚拟机,通常形容它是一个开挂的chroot
二.在linux下安装 docker
第二句命令的含义是修改 centos 的普通用户imooc到 docker 组里面,这样不需要用root 用户就可以执行docker 的命令
systemctl start docker.service 启动docker
docker -v 或者 docker info
docker images 查看 本地docker 已经安装的镜像
docker rmi 镜像名称 删除镜像
docker run -p 8080:80 -d daocloud.io/nginx 运行一个nginx 镜像 -p 参数 将 nginx 的80端口映射成本地的8080端口
-d 以守护进程的方式在后台运行
docker -ps 查看 正在运行的容器
docker cp index.html 容器id://usr/share/nginx/html 将index.html拷贝到指定的容器目录里面
docker stop 容器id 停止容器的运行
三.Dockerfile 的形式构建一个镜像并运行
实战(1)
首先编写一个最简单的Dockerfile文件 ,注意名字通常就写成Dockerfile,内容如下
FROM alpine:latest
MAINTAINER duanzhaoxu
CMD echo ‘hello docker’
第一句from 从远端拉取alpine:latest,第二句没有实际意义,代表此Dockerfile是duanzhaoxu写的,第三句代表构建好此docker镜像之后,运行此镜像会输出 hello docker
docker build -t hello_docker Dockerfile的目录 注意:-t 表示指定构建指定目录下的Dockerfile 之后的镜像 仓库名称
docker images
docker run hello_docker 运行docker镜像输出hello docker
实战(二)
FROM ubuntu
MAINTAINER DZX
RUN apt-get update
RUN apt-get install -y nginx
COPY index.html /var/www/html
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
EXPOSE 80
-
[root@localhost so]# mkdir docker222
-
[root@localhost so]# vim Dockerfile
-
[root@localhost so]# vim Dockerfile
-
[root@localhost so]# ll
-
总用量 1604
-
drwxr-xr-x. 2 root root 24 8月 3 19:47 docker111
-
drwxr-xr-x. 2 root root 6 8月 3 19:55 docker222
-
-rw-r--r--. 1 root root 166 8月 3 20:16 Dockerfile
-
-rw-r--r--. 1 root root 1440662 6月 21 10:24 jna-4.5.1.jar
-
-rw-r--r--. 1 root root 1010 6月 25 10:02 jnatest1.java
-
-rw-r--r--. 1 root root 174896 6月 21 16:18 libvehicleTurn1806212.so
-
-rw-r--r--. 1 root root 297 6月 21 11:47 test180625.cpp
-
-rw-r--r--. 1 root root 1542 6月 21 16:19 TestVehicleTurn.class
-
-rw-r--r--. 1 root root 2025 6月 21 16:19 TestVehicleTurn.java
-
-rw-r--r--. 1 root root 612 6月 21 16:19 TestVehicleTurn$Lig.class
-
[root@localhost so]# cp Dockerfile ./docker222
-
[root@localhost so]# cd docker222
-
[root@localhost docker222]# ll
-
总用量 4
-
-rw-r--r--. 1 root root 166 8月 3 20:16 Dockerfile
-
[root@localhost docker222]# vim index.html
-
[root@localhost docker222]# docker build -t dzx/hello-nginx .
-
Sending build context to Docker daemon 3.072 kB
-
Step 1/7 : FROM ubuntu
-
Trying to pull repository docker.io/library/ubuntu ...
-
latest: Pulling from docker.io/library/ubuntu
-
c64513b74145: Pull complete
-
01b8b12bad90: Pull complete
-
c5d85cf7a05f: Pull complete
-
b6b268720157: Pull complete
-
e12192999ff1: Pull complete
-
Removing intermediate container c1581280d1ee
-
Successfully built 2a88d3ddfc14
-
[root@localhost docker222]# docker im
-
image images import
-
[root@localhost docker222]# docker images
-
REPOSITORY TAG IMAGE ID CREATED SIZE
-
dzx/hello-nginx latest 2a88d3ddfc14 29 seconds ago 182 MB
-
hello_docker latest 24f45ccc6e6c 32 minutes ago 4.41 MB
-
docker.io/ubuntu latest 735f80812f90 7 days ago 83.5 MB
-
daocloud.io/nginx latest c82521676580 9 days ago 109 MB
-
docker.io/rabbitmq 3.7.7-management 8c06649c0351 2 weeks ago 149 MB
-
docker.io/alpine latest 11cd0b38bc3c 3 weeks ago 4.41 MB
-
[root@localhost docker222]# docker run -d -p 80:80 dzx/hello-nginx
-
f6cfd5f4aee49a2a912fbb62c83d954c051ba8ab2c77805ebe5078cba7e10478
-
[root@localhost docker222]# curl localhost:
-
jitnian tianqi henhao
例如a 镜像有10层,b镜像有7层,可能有5层是共享的,这样对于docker容器的压力会小很多。
文章来源: blog.csdn.net,作者:血煞风雨城2018,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_31905135/article/details/81393021