Docker使用
相关命令看教程
- 查看当前镜像,容器等信息
docker system df
- 进入容器(it是显示交互界面)
docker exec -it 容器ID /bin/bash
退出进入的容器ctrl+d
终止容器ctrl+c
- 删除已停止的所有容器
docker container prune
- 删除虚悬镜像(none的镜像)
docker image prune
dockerfile使用
教程
创建一个Dockerfile文件,"."表示当前目录。会自动去找Dockerfile文件
- 创建自定义镜像
docker build -t 镜像名 .
docker-compose使用
- 注意要在有docker-compose.yml文件目录里运行命令
- 首先介绍几个术语。
服务 (service):一个应用容器,实际上可以运行多个相同镜像的实例。
项目 (project):由一组关联的应用容器组成的一个完整业务单元。
可见,一个项目可以由多个服务(容器)关联而成,Compose 面向项目进行管理。 - 场景
最常见的项目是 web 网站,该项目应该包含 web 应用和缓存。
docker-compose.yml的编写
- 只能使用空格不能使用tab(制表符),所以用Notepad++编辑时,可以点击设置-》首选项-》语言-》右下方有个替换为空格。这样输入tab就是相当于好几个空格
- 以下代码如果复制到docker-compose.yml中会格式错乱,所以需要用原样格式黏贴模式。操作如下
在vi docker-compose.yml下输入`:`,然后set paste然后回车,再按“i”,进入编辑模式,再复制代码
tomcat案例
在/usr/local/docker/tomcat下编写(如果没有文件夹就新建)
vi docker-compose.yml
代码如下mytomcat是镜像名,container_name容器名,image是镜像源,指定版本写法image: tomcat:9.01
version: '3.1'
services:
tomcat:
restart: always
image: tomcat
container_name: tomcat
ports:
- 8080:8080
volumes:
- ./webapps:/usr/local/tomcat/webapps
environment:
TZ: Asia/Shanghai
启动容器(停止容器ctrl+c)
docker-compose up
常用命令
启动compose(后台运行,即守护进程)
docker-compose up -d
查看日志
docker-compose logs tomcat
监听日志
docker-compose logs -f tomcat
停止容器
docker-compose stop tomcat
删除容器(推荐先执行停止容器)
docker-compose rm tomcat
其他命令查看点这里
- mysql案例
这是5.7版本
version: '3.1'
services:
mysql:
restart: always
image: mysql:5.7.28
container_name: mysql
ports:
- 3306:3306
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=128M
--sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
volumes:
- ./mysql-data:/var/lib/mysql
这是5.8版本
version: '3.1'
services:
db:
# 目前 latest 版本为 MySQL8.x
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
ports:
- 3306:3306
volumes:
- ./data:/var/lib/mysql
# MySQL 的 Web 客户端
adminer:
image: adminer
restart: always
ports:
- 8080:8080