目录

一.docker介绍

二.docker镜像操作

三.docker容器操作


一.docker介绍

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。Docker在容器的基础上, 进行了进一步的封装, 从文件系统、 网络互联到进程隔离等等, 极大的简化了容器的创建和维护。 使得 Docker 技术比虚拟机技术更为轻便、 快捷。使用dockers可以很方便的管理不同版本的镜像和之前发布的容器等等。

docker三个基本的概念

  • 镜像(images):一个特殊的文件系统,可以理解成安装包,但比安装包包含信息要多,镜像中包含了容器运行时需要的程序、库、资源、配置等文件,还包含一些配置参数。镜像不包含任何动态数据,其内容在构建之后也不会改变。
  • 容器(container):可以理解成进程,将镜像运行起来的实例,可以被创建、启动、停止、删除等
  • 仓库(repository): 存放镜像的地方,类似maven库,构建的镜像可以放到公网的公共镜像库,也可以放到本地搭建的私有库上。官方库地址:https://hub.docker.com

 

二.docker镜像操作

2.1 docker 搜索某个软件的镜像:docker search

docker search nginx

结果如下图:

cpus镜像 镜像功能指令是_5e

2.2 docker镜像拉取:docker pull 

docker安装镜像时候默认是安装最新版本的镜像,如果需要指定安装版本,在镜像名后加版本号,类似这样【imageName:版本号】

# 默认拉取最新的版本latest
docker pull redis

#拉取某版本的镜像:docker pull nginx:版本号

以拉取redis为例:

cpus镜像 镜像功能指令是_5e_02

2.3 docker查看已经拉取的镜像:docker images

[root@localhost yangshilei]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              ae2feff98a0c        12 days ago         133MB
redis               latest              ef47f3b6dc11        2 weeks ago         104MB

2.4 docker镜像删除:docker rmi 镜像名

[root@localhost yangshilei]# docker rmi redis
Untagged: redis:latest
Untagged: redis@sha256:0f724af268d0d3f5fb1d6b33fc22127ba5cbca2d58523b286ed3122db0dc5381
Deleted: sha256:ef47f3b6dc11e8f17fb39a6e46ecaf4efd47b3d374e92aeb9f2606896b751251
Deleted: sha256:e7b97696179ae52f99c8f6461f3f941b57c17773dc6e6ea1b1f80c73c123e45b
Deleted: sha256:801f8402e1252a3ea833fd913662681b83fe991dac17fcab63fee395d293816f
Deleted: sha256:263e9403c2490ca4297aa92872fbc2bc6a90ef5131da4846ecda24577678f7da
Deleted: sha256:888cb204a0d4130e3f91638f50d31f1934b62bcf3a312a4b3f8e921930c22640
Deleted: sha256:54bfccba7f0a8056bd6e1e66db469726395627e37eac6d41db37e71fc1a2536d
[root@localhost yangshilei]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              ae2feff98a0c        12 days ago         133MB

三.docker容器操作

3.1 docker运行容器:docker run --name 容器名  -p 对外端口号:容器内端口号 -d 镜像名称,-t 返回一个终端

docker run --name nginx-test  -p 8081:80 -d nginx

/# 或者自己搭建的java项目类似如下启动
docker run -p 8080:8080 -t haiyang/docker-study

3.2 查看运行中的容器:docker ps

# 查看运行中的容器
[root@localhost yangshilei]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
c425e8b90a69        nginx               "/docker-entrypoint.…"   5 hours ago         Up 8 minutes        0.0.0.0:8081->80/tcp   nginx-test

# 停止运行的容器
[root@localhost yangshilei]# docker stop c425e8b90a69
c425e8b90a69

# 查看运行中的容器
[root@localhost yangshilei]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

# 查看所有容器,运行中和停止的
[root@localhost yangshilei]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
c425e8b90a69        nginx               "/docker-entrypoint.…"   5 hours ago         Up 8 minutes        0.0.0.0:8081->80/tcp   nginx-test

容器的列描述如下:

cpus镜像 镜像功能指令是_cpus镜像_03

3.3 停止容器: docker stop 容器id

[root@localhost yangshilei]# docker stop c425e8b90a69
c425e8b90a69

3.4 启动被停止的容器:docker start 停止容器id

[root@localhost yangshilei]# docker start c425e8b90a69
c425e8b90a69
[root@localhost yangshilei]# docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
c425e8b90a69        nginx               "/docker-entrypoint.…"   5 hours ago         Up 3 seconds        0.0.0.0:8081->80/tcp   nginx-test

3.5 进入容器:docker exec -it 容器id   /目录

[root@localhost yangshilei]# docker exec -it c425e8b90a69 /bin/bash
root@c425e8b90a69:/# pwd
/
root@c425e8b90a69:/#

3.6 退出容器:exit

root@c425e8b90a69:/# exit
exit
[root@localhost yangshilei]#

 

干活干活了,今天先写那么多,后期继续补充。。。。。。