Docker学习笔记(一)docker的介绍和安装
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容器的压力会小很多。
- 点赞
- 收藏
- 关注作者
评论(0)