介绍
Docker是开发人员和系统管理员使用容器开发,部署和运行应用程序的平台。
使用Linux容器部署应用程序称为容器化。使用docker提供的管理工具,可以将应用与它的依赖环境通过编排文件打包在一起,运行这个文件就能运行应用,可以像代码一样实现版本控制。
安装
参考官方文档:https://docs.docker.com/install/
基本使用
docker有三个概念:仓库,镜像,容器
- 仓库:存储镜像,类似github的仓库。
- 镜像:一个可执行包,包含运行应用程序所需的所有内容,代码,依赖,环境变量和配置文件。
- 容器: 运行中的镜像的一个实例。
修改/etc/docker/daemon.json
配置,使用中国镜像加速
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
重启service docker restart
后生效
镜像
基础使用
搜索一个镜像
$ docker search nginx
运行一个镜像
$ docker run nginx[:tag] ##tag版本号可选,默认不加为latest最新版
docker run
首先看本地有没有镜像,没有则相当于执行了docker pull image && docker run image
example:
$ docker run --rm -p 8080:80 --name my-nginx nginx
## --rm 退出后删除容器,-p 8080:80 端口转发,--name my-nginx容器命名,[-d]后台运行
运行后,在本地浏览器打开127.0.0.1:8080
就能看到nginx的欢迎界面了
本地镜像
##查看
$ docker image ls ##或者docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 7042885a156a 2 weeks ago 109MB
##删除
$ docker image rm IMAGE-ID ##或者docker rmi IMAGE-ID
##IMAGE-ID不用写全,随便写几位只要没有重复的就行
Dockerfile
使用Dockerfile基于基础镜像定制属于自己的镜像
##指定基础镜像
FROM nginx
##运行命令
RUN echo "hello world" > /usr/share/nginx/html/index.html
##容器启动命令
CMD ["nginx", "-g", "daemon off;"]
保存为Dockerfile
文件,在该目录下运行docker build -t my-nginx:1.0 .
构建镜像,末尾.
代表当前目录
查看本地镜像,并运行试试
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my-nginx 1.0 f3d6c4882e97 About a minute ago 109MB
nginx latest 7042885a156a 2 weeks ago 109MB
$ docker run --rm -p 8080:80 --name my-nginx my-nginx:1.0
这里只写了几个简单的dockerfile命令,完整地可以参考官方文档
docker-compose
容器编排工具,有时一个项目需要多个容器组合,借助wordpress来了解使用docker-compose
version: "3"
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
新建文件夹wordpress
进入,将以上保存为docker-compose.yml
,然后在命令行该目录下docker-compose up -d
,Compose 就会拉取镜像再创建我们所需要的镜像,然后启动 wordpress 和数据库容器。 接着浏览器访问 127.0.0.1:8000
端口就能看到 WordPress 安装界面了。
docker-compose常用命令
$ docker-compose up -d ##后台启动
$ docker-compose ps ##查看容器状态
$ docker-compose kill ##停止所有容器
$ docker-compose stop/start container-name ##停止/开始容器
$ docker-compose down ##停止容器并删除所有镜像
容器
一个镜像运行起来就是一个容器了,一个窗口开一个nginx
容器,另开一个窗口操作
常用命令
查看运行中的容器,-a可以查看所有容器
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
05159f0517e3 my-nginx:1.0 "nginx -g 'daemon of…" 6 seconds ago Up 5 seconds 0.0.0.0:8080->80/tcp my-nginx
停止/启动/删除[ -f强制删除]容器
$ docker container stop/start/rm container-id
$ docker container prune ##删除所有容器
结语
这里只写了一些最简单的基本操作,想要深入了解请查阅官方文档