Docker笔记(自用)
随手记点笔记,不全,自用
Docker
基础命令
服务相关命令
- systemctl start docker
- systemctl stop docker
- systemctl restart docker
- systemctl status docker
- systemctl enable docker 为 docker 服务设置开机自启
镜像相关命令
- docker images 查看本地镜像
- docker search 镜像名称 搜索镜像
- docker pull 镜像名称:版本号 从 docker 仓库拉取某版本的镜像到本地
- docker build 创建 dockerfile 镜像
容器相关命令
-
docker ps -a 查看所有本地容器
-
举例:docker run -it --name=cl centos:7 /bin/bash 创建一个名为 cl 的 centos7 的容器并以 bash 这个 shell 进入交互式界面
- exit 可以退出容器但会使带-t 参数的交互式容器停止,所以要避免-t 参数的使用,但是可以使用^p^q 来退出而不结束容器
-
docker run -id --name=cl centos:7 创建一个名为 cl 的 centos7 的容器在后台运行(守护式容器)
-
docker attach 容器名
- docker exec 容器名 用此命令进入容器,退出后容器不会停止
-
docker start 容器名 重新启动已存在的容器
-
docker stop 容器名 关闭容器
-
删除所有容器的示例命令(慎用):docker rm ‘docker ps -aq’
-
docker inspect 容器名 查看容器信息
数据卷(挂载)
docker run … -v 宿主机目录 : 容器内目录 -v 宿主机目录 : 容器内目录
- 目录必须是绝对路径
- 如果目录不存在会自动创建
- 可以挂载多个数据卷
数据卷容器
-
使用方法
- name=A -v /volume
- –volumes-from A
- –volumes-from A
- 即使删除了 A,其余的数据卷也挂在于宿主机,不受影响
-
作用
- 容器数据持久化(数据隔离)
- 客户端和容器数据交换
- 容器间数据交换
应用部署
MySQL 示例
- docker run -id \ 守护进程
-p 3307:3306 \ 映射端口为 3307 与宿主机通信
–name=mysql \ 镜像名
-v $PWD/conf:/etc/mysql/conf.d \ 挂载配置目录
-v $PWD/logs:/logs \ 挂载日志目录
-v $PWD/data:/var/lib/mysql \ 挂载数据目录
-e MYSQL_ROOT_PASSWORD=123456 \ 密码环境
mysql:5.6 镜像和版本
Tomcat 示例
- docker run -id --name=tomcat
-p 8080:8080
-v $PWD:/usr/local/tomcat/webapps
tomcat
Nginx 示例
- docker run -id --name=nginx
-p 80:80
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf
-v $PWD/logs:/var/log/nginx
-v $PWD/html:/usr/share/nginx/html
nginx
Redis 示例
- docker run -id --name=redis -p 6379:6379 redis
- ./redis-cli.exe -h 主机 IP -p 端口
Dockerfile
结构
- Docker 镜像是由特殊的文件系统叠加而成,底层直接沿用宿主机的 bootfs
- 第二层为 root 文件系统 rootfs,称为 base image
- 可以再往上叠加其他镜像文件
制作镜像
-
容器转镜像
- docker commit 容器 id 镜像名称 : 版本号
- docker save -o 压缩文件名称 镜像名称 : 版本号
- docker load -i 压缩文件名称
-
dockerfile
服务编排 Compose
微服务需要部署多个实例,人工进行过于复杂
使用流程
- 安装 docker-compose
- 编写 docker-compose.yml
- docker-compose up -d 启动即可
私有仓库
搭建流程
- docker pull registry
- docker run -id --name=registry -p 宿主端口:容器端口 registry
- 访问服务器 IP:端口号/v2/_catlog,查看是否有输出{“repositories”:[]}
- 修改/etc/docker/daemon.json
- 添加{“insecure-registries”:[“服务器 IP:端口号”]}
- 重启 docker 服务 systemctl restart docker && docker start registry
上传流程
- docker tag 镜像名:版本 服务器 IP:端口号/镜像名:版本
- docker push 服务器 IP:端口号/镜像名:版本
拉取流程
- docker pull 服务器 IP:端口号/镜像名:版本
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 惜别的秘密基地!
评论
UtterancesGiscus