docker的使用
docker的使用
Docker容器的特点:
- 轻量:容器是进程级的资源隔离,而虚拟机是操作系统级的资源隔离,所以Docker容器相对于虚拟机来说可以节省更多的资源开销,因为Docker容器不再需要GuestOS这一层操作系统了。
- 快速:容器的启动和创建无需启动GuestOS,可以实现秒级甚至毫秒级的启动。
- 可移植性:Docker容器技术是将应用及所依赖的库和运行时的环境技术改造包成容器镜像,可以在不同的平台运行。
- 自动化:容器生态中的容器编排工作(如:Kubernetes)可帮助我们实现容器的自动化管理。
1.Docker的安装
a.Linux(Centos、Ubuntu通用)
1 | 使用官方安装脚本自动安装 |
安装完成后运行一下命令查看是否安装成功
1 | docker version |
Docker需要sudo用户权限,为避免每次命令都输入sudo,可以将用户加入docker用户组
1 | 1.创建docker用户组 |
注销并重新登录,以便重新评估组成员关系。如果在虚拟机上进行测试,可能需要重新启动虚拟机以使更改生效。在桌面Linux环境(如X Windows)中,完全注销会话,然后再重新登录。在Linux上,您还可以运行以下命令来激活对组的更改
1 | 3.激活用户组更改 |
如果出现以下warning说明权限不正确
1 | WARNING: Error loading config file: /home/user/.docker/config.json - |
要解决此问题,请删除〜/ .docker /目录(该目录会自动重新创建,但是所有自定义设置都会丢失),或者使用以下命令更改其所有权和权限:
1 | sudo chown "$USER":"$USER" /home/"$USER"/.docker -R |
docker启动
1 | 启动docker服务 |
2.基本指令
a.镜像篇
1 | docker images # 查看所有镜像 |
b.容器篇
1 | docker ps # 查看所有正在运行中的容器 |
注意:容器需要停止后才能删除干净
c.常用操作
1 | docker exec -it [containerID] /bin/bash # 进入到一个运行中的容器当中 |
d.镜像制作提交
1 | docker commit [containerID] [ImageName]:[Version] # 将修改后的容器重新打包成镜像 |
e.容器状态
Docker容器有以下几种状态:created(已创建),restarting(重启中),running(运行中),removing(迁移中),paused(暂停),exited(停止),dead(死亡)
3.Dockerfile编写
a.保留字指令
FROM:基础镜像
MAINTAINER:镜像维护者的姓名和邮箱地址
RUN:容器构建时需要运行的命令
EXPOSE:容器对外暴露出的端口
WORKDIR:终端默认登陆的进来工作目录
ENV:构建镜像过程中设置环境变量
1 | ENV MY_PATH /usr/mytest |
ADD:将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
COPY:类似ADD,拷贝文件和目录到镜像中。
1 | //src dest均为目录,表示把src下的文件拷贝到dest目录下 |
VOLUME:容器数据卷,用于数据保存和持久化工作
CMD:指定一个容器启动时要运行的命令。Dockerfile 中可以有多个 CMD 指令,但只有最后一个生效,CMD 会被 docker run 之后的参数替换。
ENTRYPOINT:指定容器运行的命令,可以追加命令
1 | CMD ["executable","param1","param2"] (exec格式) |
ONBUILD:子镜像继承父镜像,子镜像运行时,父镜像ONBUILD被触发。
b.DockerFile编写(centos)
1 | FROM centos |
1 | docker build -f DockFile路径 -t 新镜像名字:TAG . |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.


