Docker初识——docker的安装,镜像使用及简单指令

一、什么是docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

二、Docker的安装

docker的安装可以自行到官网上去寻找docker的rpm(rhel)自行安装
这里我们准备的是docker18.06的版本
在这里插入图片描述
开启docker

[root@server1 docker]# systemctl start docker

查看安装好的docker信息

[root@server1 docker]# docker info

在这里插入图片描述

三、添加docker镜像,并运行

在一开始我们为了让大家对docker产生兴趣,我们准备了一款2048小游戏,在这里作为镜像向大家展示docker
1.添加game2048镜像

[root@server1 ~]# ls
docker  game2048.tar
[root@server1 ~]# docker load -i game2048.tar 
011b303988d2: Loading layer   5.05MB/5.05MB
36e9226e74f8: Loading layer  51.46MB/51.46MB
192e9fad2abc: Loading layer  3.584kB/3.584kB
6d7504772167: Loading layer  4.608kB/4.608kB
88fca8ae768a: Loading layer  629.8kB/629.8kB
Loaded image: game2048:latest

2.查看docker的镜像

[root@server1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE	
game2048            latest              19299002fdbe        2 years ago         55.5MB

在这里我们的镜像当然只有我们刚才添加的game2048
3.运行docker镜像

[root@server1 ~]# docker run -d -p 80:80 --name game game2048
f0a654b8735cc259ab552def3c7bc8e383df1819a558d273c2fdd26ea911b363

需要注意的是我们在这里-d是指后台运行,不然他就会占用我们的终端,如果不让后台运行,则使用-it参数即可,–name是一个重命名的方式,不然我们的镜像与进程不好分辨,-p是做一个地址映射,这样就可以让docker使用我们的物理机的端口
4.查看运行的镜像

[root@server1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES
f0a654b8735c        game2048            "/bin/sh -c 'sed -i …"   2 minutes ago       Up 2 minutes        0.0.0.0:80->80/tcp, 443/tcp   game
如果要查看所有的运行镜像,包括暂停的镜像,同ps命令一样,加参数-a即可

5.查看运行的镜像的具体信息
在这里插入图片描述
这样我们可以看到这个镜像的具体运行过程,其启动脚本,生成ip,端口号等等都可以查询
6.浏览器查看docker
在这里插入图片描述

四、docker的一些简单命令

1.docker的ip分配
docker运行后,系统会为其自动分配一个ip
在这里插入图片描述
2.docker版本查看

[root@server1 ~]# docker version 
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        e68fc7a
 Built:             Tue Aug 21 17:23:03 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       e68fc7a
  Built:            Tue Aug 21 17:25:29 2018
  OS/Arch:          linux/amd64
  Experimental:     false

3.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  删除容器

五、docker快速搭建nginx服务器

1.导入镜像,创建容器
在这里插入图片描述
2.查看vm1容器信息
在这里插入图片描述
3.浏览器访问
在这里插入图片描述
4.编写一个默认发布页面,然后将其复制到ninx容器的默认发布目录

[root@server1 ~]# cd /tmp/
[root@server1 tmp]# ls
[root@server1 tmp]# mkdir docker
[root@server1 tmp]# cd docker/
[root@server1 docker]# vim index.html
[root@server1 docker]# cat index.html 
hello
[root@server1 docker]# docker cp index.html vm1:/usr/share/nginx/html

浏览器测试在这里插入图片描述
5.当然也可以使用挂载的方式

[root@server1 docker]# docker cp index.html vm1:/usr/share/nginx/html 
[root@server1 docker]# docker rm -f vm1
vm1
[root@server1 docker]# docker run -d --name vm1 -p 80:80 -v /tmp/docker/:/usr/share/nginx/html nginx	-v挂载,:前面的为本地的文件,后面的是docker的文件目录
2c1c05f6d6118de5f00c809ea70586069a271252746b195cade83acf9a05bce9
[root@server1 docker]# vim index.html 
[root@server1 docker]# cat index.html 
hello
hello
hello

浏览器测试:
在这里插入图片描述

六、利用docker创建一个交互式容器

我们前面建立的容器全部是放入后台运行的,那么在这里我们来建立一个交互的容器,我们就以ubentu系统镜像为例

[root@server1 docker]# docker images ubuntu
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              07c86167cdc4        3 years ago         188MB
[root@server1 docker]# docker run -it --name vm2 ubuntu
root@d89d5ee155db:/# ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
root@d89d5ee155db:/# id
uid=0(root) gid=0(root) groups=0(root)
root@d89d5ee155db:/# 

交互式的结束

ctrl+pq   不停止容器,后台运行
ctrl+d    直接结束容器,释放内存
rm   		删除容器
rmi   		删除镜像	

猜你喜欢

转载自blog.csdn.net/weixin_42446031/article/details/90754928