本章节主要来讲述docker desktop 界面版本使用以及docker-compose 的安装和使用
docker 专栏:点击此处
做了一个项目,用nodejs写的后端,vue写的PC端以及移动端,数据库用mysql,现在要部署到服务器上。由于怕下次部署又要一堆操作,就弄了个docker,并且以此文章来做笔记以及分享。
(jenkins的项目也同步到了jenkins/jobs中,所以项目不用重复配置)
。这里记录下版本,因为不同时期总会有一些参数跟环境要求不一样了…
大家到时候就可以弄指定版本应该可以解决问题…
Docker版本:Docker version 23.0.0, build e92dd87
docker-compose版本: version 1.26.2
docker 安装
点击下载
前期学习开发用,很方便
docker 下载并且运行
界面化了,当然也可以跟linux一样使用指令...
docker 配置
运行后会弹出配置框
可以在这里配置端口映射以及数据卷,用linux来说就是挂载,这边给个9999端口号。
点击后运行容器,并且进来到这个页面,当然也可以通过菜单的containers 进入到容器,直接可以看到容器里面的日志。
还可以通过这里直接进入到该容器的命令行,相对于命令行是傻瓜式操作了。。。
从容器列表中,点击步骤2,就可以弹出来了,具体的nginx配置,到其他章节讲,这里主要讲安装以及使用。
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
官方的一键安装方式:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
国内 daocloud一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
运行docker daemon
systemctl start docker
docker-compose 没有图形化界面,都是用命令的,这边window+linux通用指令。
pip 部分环境可能要安装一下
sudo pip3 install docker-compose
在linux 环境出错了,这里做下笔记,记录解决方案,每台服务器可能都不一样,自己看情况。
运行docker
sudo pip3 install --ignore-installed requests
pip3 install --upgrade pip
获得一个命令的帮助
docker-compose 命令 --help
构建并启动所有容器,如果镜像存在就重新构建
docker-compose up -d --build
启动所有服务
docker-compose up -d
构建启动nignx容器
docker-compose up -d nginx
-f 指定使用的Compose配置文件启动,默认为docker-compose.yml,可以多次指定。
docker-compose -f docker-compose.yml up -d
运行一个服务,并在服务上执行一个命令
docker-compose run 容器id或容器名 ip addr
登录到nginx容器中
docker-compose exec nginx bash
此命令将会停止 up 命令所启动的容器,并移除网络
docker-compose down
列出项目中运行的所有容器
docker-compose ps
列出项目中运行及未运行的所有容器
docker-compose ps -a
列出所有运行的服务容器
docker-compose ls
列出所有服务容器(包括未运行的容器)
docker-compose ls -a
重新启动nginx容器
docker-compose restart nginx
构建镜像
docker-compose build nginx
不带缓存的构建
docker-compose build --no-cache nginx
查看各个服务容器内运行的进程
docker-compose top
查看nginx的实时日志
docker-compose logs -f nginx
列出 Compose 文件包含的镜像
docker-compose images
验证文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。
docker-compose config
以json的形式输出nginx的docker日志
docker-compose events --json nginx
暂停nignx容器
docker-compose pause nginx
恢复ningx容器
docker-compose unpause nginx
删除容器(删除前必须关闭容器,执行stop)
docker-compose rm nginx
强制删除容器(不必先关闭容器)
docker-compose rm -f nginx
停止nignx容器
docker-compose stop nginx
启动nignx容器
docker-compose start nginx
重启项目中的nignx容器
docker-compose restart nginx
下载依赖的镜像
docker-compose pull
推送服务依的镜像
docker-compose push
设置指定服务运行的容器个数。通过service=num的参数来设置数量
docker-compose scale web=3 db=2
查看版本信息
docker-compose version
这里扔一个mysql+adminer(数据库管理服务)作为demo,后期完整的配置在后续文章中展示。
version: '3.4'
services:
mysql1: #mysql容器
image: mysql
container_name: mysql1
restart: always
# 授权
user: root
privileged: true
environment: ##设置环境便变量
TZ: Asia/Shanghai ##设置时区
MYSQL_ROOT_PASSWORD: 123456 #这里自行设置root用户的密码
command: ##设置容器运行时执行的命令
--default-authentication-plugin=mysql_native_password
volumes:
- /C/docker-compose/mysql/datadir/:/var/lib/mysql
ports:
- 3306:3306 #宿主机和容器间的端口映射,可自行配置
adminer1: ##指定服务名为adminer
image: adminer ##指定要运行的镜像为adminer adminer是一个mysql数据库的web工具
container_name: adminer1 ##指定容器名
user: root
privileged: true
restart: always ##设置重启策略为always
ports: ##指定映射的端口(宿主机端口:容器内部端口)
- 10080:8080
depends_on: ##设置容器的依赖关系,该adminer容器关联mysql容器
- mysql1 ##mysql这个镜像安装后,才会安装这个镜像
在该文件目录中运行脚本。
# 记得先开打docker 服务...
# systemctl start docker
# 运行脚本
docker-compose up -d
如果端口被占用了,记得先停止一下
打开,adminer,根据配置文件填写信息,记得服务器,这个比较尴尬,很多copy的文章都没有提示这个…