Docker简介:
- Docker是一个用于开发、迁移、运行的开发平台。它使你能够将你的应用程序从基础架构中分离,从而可以快速交付。使用Docker,你可以以与管理应用程序相同的方式来管理这些基础架构。使用Docker的方法,进行快速开发,测试,并可以显著的减少编写代码和运行之间的时间延迟。
一、 Docker的部署与安装
- 安装docker和相关依赖性:
[root@foundation19 docker]# ls
container-selinux-2.21-1.el7.noarch.rpm
docker-ce-18.06.1.ce-3.el7.x86_64.rpm
libsemanage-2.5-8.el7.x86_64.rpm
libsemanage-python-2.5-8.el7.x86_64.rpm
pigz-2.3.4-1.el7.x86_64.rpm
policycoreutils-2.5-17.1.el7.x86_64.rpm
policycoreutils-python-2.5-17.1.el7.x86_64.rpm
[root@foundation19 docker]# yum install -y *
- 打开docker服务
[root@foundation19 ~]# systemctl start docker
- 在安装好docker后,linux系统会为docker容器分配一个ip,利用ip addr中查看docker0的ip
[root@foundation19 ~]# ip addr
4. 查看docker的版本信息
[root@foundation19 ~]# docker version
5. docker宿主机的信息
[root@foundation19 ~]# docker info
二、docker常用的基础命令
# docker load -i ubuntu.tar 导入镜像
# docker run -it --name vm1 ubuntu 创建容器(以ubuntu镜像为模板)
# docker ps 查看容器状态
# docker ps -a 查看容器状态(包括不活跃的容器)
# docker attach vm1 连接容器
# docker top vm1 查看容器进程
# docker logs vm1 查看容器指令输出 -f 参数可以实时查看
# docker inspect vm1 查看容器详情
# docker stats vm1 查看容器资源使用率
# docker diff vm1 查看容器修改
# docker stop vm1 停止容器
# docker start vm1 启动容器
# docker kill vm1 强制干掉容器
# docker restart vm1 重启容器
# docker pause/unpause vm1 暂停/恢复容器
# docker rm vm1 删除容器
三、镜像的导入和容器的使用
- 简单搭建一个2048小游戏
- 导入镜像game2048.tar
[root@foundation19 ~]# docker load -i game2048.tar
- 运行镜像
[root@foundation19 ~]# docker run -d --name game game2048
#-d打入后台
# --name表示为这个容器起的名字是game
- 查看game容器的信息
[root@foundation19 images]# docker inspect game
4. 在本机浏览器中输入该ip,访问该容器网址,在网页可以看到小游戏界面(需要注意的是:这个172.17.0.2是自己私有的ip地址,别人不能访问)
- 快速搭建nginx
- 导入镜像,并创建容器vm1
[root@foundation19 docker]# docker load -i nginx.tar
[root@foundation19 docker]# docker run -d --name vm1 nginx
- 查看vm1的信息(找到IP)
[root@foundation19 docker]# docker inspect vm1
3. 浏览器访问(如果想对外也开放,则需要端口映射)
4. 编写一个默认发布页面,并cp到容器内部
[root@foundation19 ~]# cd /tmp/
[root@foundation19 tmp]# mkdir docker
[root@foundation19 tmp]# cd docker/
[root@foundation19 docker]# vim index.html
hello
[root@foundation19 docker]# docker cp index.html vm1:/usr/share/nginx/html
- 测试:浏览器访问,显示hello
- 也可以直接挂载(-v参数)
```javascript
[root@foundation19 docker]# docker rm -f vm1
vm1
[root@foundation19 docker]# docker run -d --name vm1 -v /tmp/docker/:/usr/share/nginx/html nginx
# -v 挂载目录(前面表示宿主机目录,后面表示容器内的目录)
[root@foundation19 docker]# vim index.html
hello world
- 利用docker创建一个交互式容器进行测试
[root@foundation79 images]# docker load -i ubuntu.tar #加载ubuntu镜像
[root@foundation79 images]# docker run -it --name vm1 ubuntu
root@86a87a75a80c:/# ip addr 创建一个vm1的镜像,-it表示打开交互式docker界面(ubuntu自带,rhel镜像需要在后面再加bash)
关于如何结束交互式界面:
- ctrl+pq 不停止容器,后台运行
- ctrl+d 直接结束容器,释放内存
- rm 删除容器
- rmi 删除镜像