docker出现极大的提高了生产力,借助docker可快速搭建测试环境,下面看看docker的用法吧,命令还挺多的
一. 安装
$ yum install -y docker
$ service start docker
For other actions, please try to use systemctl.
# kernel 5.4 用systemd管理安装包
$ systemctl start docker
$ systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2020-01-27 22:10:40 CST; 7min ago
Docs: http://docs.docker.com
Main PID: 4276 (dockerd-current)
docker 底层利用了Linux容器技术(LXC),内核要求 2.6.32 以上版本,此处安装社区版本。
二. 基础命令
显示本机镜像
docker version
docker info
#本机安装镜像
docker images
#删除镜像
docker rmi redis
测试镜像:
docker run hello-world
三. 安装mysql
手动安装mysql,需要各种配置,很容易出错。利用docker几条命令就可以搞定mysql安装。
3.1 查找mysql镜像
docker search mysql
3.2 安装
docker pull mysql
默认下载最新版本,相当于docker pull mysql:latest,可指定版本号,从docker中央仓库查找版本。
docker pull mysql:5.7.28
3.3 启动mysql
docker run -itd --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql5.7
-i 交互环境,-t 伪终端,-d 后台启动。如果不指定-d,会直接进入容器环境。
-name 容器名称
-p 端口映射,:前为宿主机端口,后为容器端口。主机通过3306访问容器mysql服务
-e 环境变量,这里通过MYSQL_ROOT_PASSWORD 指定mysql密码
mysql5.7 容器名称,也可指定镜像ID:1e4405fe1ea9 mysql镜像ID
查看容器进程
docker ps -a
进入容器
docker exec -it mysql5.7 /bin/bash
此时不能通过远程登录,需要授权远程访问:
GRANT ALL ON *.* to 'root'@'%' IDENTIFIED BY '1234';
flush privileges;
四. 应用监控
docker port mysql5.7 #查看映射端口
docker logs -f mysql5.7 #查看mysql日志
#查看资源使用
docker top mysql5.7
docker stats
#显示容器信息
docker inspect mysql5.7
五. 镜像操作
docker attach 785b621aa562 #进入容器,exit时容器会退出,推荐用exec
docker stop mysql #关闭容器,此时容器还存在,不能通过docker run启动
docker start 785b621aa562 #启动容器
docker rm -f mysql # 删除容器
docker container prune #批量删除exit状态容器
docker rmi hello-world #删除下载的镜像
docker与宿主机环境是隔离的,可以通过命令拷贝共共享目录方式实现
拷贝文件到容器
docker cp /data/test.txt mysql5.7:/root
docker run --name tomcat -p 8080:8080 -v /data/test:/usr/local/tomcat/webapps/test -d tomcat
-v 挂载目录,将宿主机/data/test 挂载到 tomcat容器的 /usr/local/tomcat/webapps/test,这样实现了应用的部署
导出本地容器
#导出本地镜像
docker export f076750fa802 > myredis.tar
#导入镜像
docker import myredis.tar
基于基础原镜像创建新的镜像,保存对原镜像的修改。
-m 提交描述信息,-a 镜像作者,mycentos-mysql 容器名称或容器ID
kane/centos:v1.0 用户名仓库及TAG
➜ ~ docker commit -m "commit v5.6" -a kane 785b621aa562 kane/centos:v1.0
sha256:b5a20dc4a96f6200a89b19231264cdeaae1dd7ab62fc971af7bd286881f771c6
➜ ~ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
kane/centos v1.0 b5a20dc4a96f 4 seconds ago 274MB