目录
一.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
结果如下图:
2.2 docker镜像拉取:docker pull
docker安装镜像时候默认是安装最新版本的镜像,如果需要指定安装版本,在镜像名后加版本号,类似这样【imageName:版本号】
# 默认拉取最新的版本latest
docker pull redis
#拉取某版本的镜像:docker pull nginx:版本号
以拉取redis为例:
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
容器的列描述如下:
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]#
干活干活了,今天先写那么多,后期继续补充。。。。。。