docker操作镜像的命令
查找镜像 https://hub.docker.com
docker search image //命令搜索 image
docker image --help
pull docker image pull / docker pull 从仓库 拉去镜像
push docker image push / docker push 镜像推送到仓库
ls docker image ls / docker images 列出所有镜像
rm docker image rm / docker rmi 删除本地镜像
save 镜像打包成tar文件 docker image save 镜像id -o tar文件名
load tar文件加载镜像 docker image load –i tar文件
tag 标记tag docker image tag 镜像id nginx:1.16
prune 删除未使用的镜像
build Dockerfile构建镜像
inspect 查看镜像的详情信息
docker操作容器的命令
docker container --help
查看容器
ps ls list
docker ps docker container ls/ps/list 选项 -a 所有的 -l 最近运行
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bf09b3ec40f1 centos:6 "/bin/bash" 8 minutes ago Exited (0) 7 minutes ago sharp_neumann
运行 一个容器
run docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run / docker container run 容器运行必须前台有进程运行 否则会退出
选项
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name: 为容器指定一个名称;
-h: 指定容器的hostname;
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
docker run -d --name web-6 -p 90:80 nginx
-P: 随机端口映射,容器内部端口随机映射到主机的高端口
--link 添加链接到另一个容器;
--restart 启动docker自动启动 always/no(默认)
-m --memory 限制使用的最大内存
-cpus 限制使用的cpu数量
-v 绑定数据卷
--mount 挂载文件系统到容器
exec 在容器中执行命令
-i 标准输入
-t 分配伪终端
docker exec -it 容器名/容器id /bin/bash
logs 查看容器的输出日志
docker logs 容器名
stats 查看容器的资源使用
docker stats 容器名
选项
--no-stream
inspect 查看容器的具体信息
cp 拷贝文件到容器
docker cp anaconda-ks.cfg web5:/
top 查看容器运行的进程
stop/start/restart 停止启动容器
rm 删除容器
update 更新容器资源限制
数据卷(data volume)
Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷(Data Volume)。数据卷可以用来存储Docker应用的数据,也可以用来在Docker容器间进行数据共享。数据卷呈现给Docker容器的形式就是一个目录,支持多个容器间共享,修改也不会影响镜像。
volume
选项
create 创建数据卷
inspect 查看
ls 列出数据卷
prune 删除不用的数据卷
rm 移除数据卷
docker volume create vol_test
第一种方式 -v
docker run -d --name web5 -p 99:80 -v vol_test:/usr/share/nginx/html nginx
直接执行 自动创建数据卷
docker run -d --name web6 -p 100:80 -v nginx_test:/usr/share/nginx/html nginx
直接挂载道目录 原来的文件没有了
docker run -d --name web16 -p 2223:80 -v /home/www:/usr/share/nginx/html nginx
第二种 --mount
docker run -d --name web9 -p 1111:80 --mount src=nginx_test,dst=/usr/share/nginx/html nginx
数据卷的特性
数据卷可以在容器间共享和重用数据
数据卷可以在宿主和容器间共享数据
数据卷数据改变是直接修改的
数据卷的生命周期一直持续到没有容器使用它为止
搭建lnmp环境
docker pull nginx:1.17
docker pull php:7.3-fpm
docker pull mysql:5.7
启动mysql
docker run -d --name lnmp_mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
启动PHP
docker run -d --name lnmp_php --link lnmp_mysql:mysql -v /home/www:/usr/share/nginx/html php:7.3-fpm
启动nginx
docker run -d --name lnmp_nginx -p 80:80 -v /home/www:/usr/share/nginx/html --link lnmp_php:php nginx:1.17
nginx配置
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
容器 安装vim
apt-get update
apt-get install vim
宿主机查找容器文件
find / -name 文件名
安装PHP扩展
docker-php-ext-install pdo_mysql mysqli
pecl install redis docker-php-ext-enable redis
socket/workerman/rpc/docker群:604438441