Docker常用命令
- docker命令相关
- 启动docker服务:systemctl start docker
- 重启自动启动:systemctl enable docker
- 查看docker版本:docker version
- 查看docker仓库mysql版本:docker search mysql
- docker compose 常用命令
- 启动docker集合:docker-compose up -d
- –no-color 不使用颜色来区分不同的服务的控制输出
- 列出项目中目前的所有容器: docker-compose ps
- docker-compose stop
- –rmi type,删除镜像,类型必须是:all,删除compose文件中定义的所有镜像;local,删除镜像名为空的镜像
- -v, –volumes,删除已经在compose文件中定义的和匿名的附在容器上的数据卷
- –remove-orphans,删除服务中没有在compose中定义的容器
- docker-compose logs -f -t --tail=10 查看实时日志,最近10条
- 镜像命令相关
- 拉取镜像并生成容器:docker run tomcat
- 删除镜像:docker rmi ID/名称
- docker中下载了哪些镜像:docker images
- 取镜像到本地:docker pull 镜像名称
- 镜像的导出:decker save -o 导出的路径 镜像ID
- 镜像的导入:decker load -i 文件名称
- 修改镜像的名称:docker tag 镜像ID/名称 新名字:新版本号
- 容器命令相关:
- 启动容器:docker run 镜像ID/名称
常用参数: -d:没有界面,后台运行
-it:i输入,t终端
--name:指定容器名称
-p:用于映射linux的端口号和容器的端口号
例:docker run -d -p 8011:8080 --name first_tomcat tomcat:9.0
- 查看容器:docker ps [-qa]
ps:是进程状态的意思
-a:查看全部容器,包括没运行的容器
-q:只查看容器的ID
- 查看容器的日志:docker logs -f ID
-f:以滚动的方式查看容器日志的最后几行
例子:
1.查看指定时间后的日志,只显示最后100行:
docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID
2.查看最近30分钟的日志:
docker logs --since 30m CONTAINER_ID
3.查看某时间之后的日志:
docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID
4.查看某时间段日志:
docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37"
- 进入容器内部:docker exec -it 容器ID bash
exec:执行的意思
-it:交互式运行容器
bash:默认的linux的默认界面shell
注:tomcat目录下,删除webapps文件夹,然后把webapps.dist改名为webapps
- 停止容器:docker stop 容器ID
- 停止所有容器:docker stop $(docker ps -qa)
- 重启容器:docker start 容器ID
docker restart 容器ID
- 删除容器:docker rm 容器ID
- 删除所有容器:docker rm $(docker ps -qa)
配置问题
sudo docker run --name mysql -d -p 3306:3306 --restart unless-stopped -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
docker logs --tail 50 --follow --timestamps mysql
容器创建成功但一直重启,查看报错发现是挂载时错误
sudo mkdir -p /etc/mysql/conf.d
手动创建下删除旧容器,重新执行创建mysql容器。成功启动
DBeaver连接连接问题
外部访问权限未开
进入容器中 docker exec -it mysql bash
登录mysql: mysql -u root -p密码
use mysql;
select host,user from user;
update user set host = '%' where user = 'root';
flush privileges; --刷新权限
select host,user from user;
云服务器开启3306端口
DBeaver配置更改
Public Key Retrieval is not allowed 报错,该属性改为true即可