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 使用_docker

测试镜像:

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 使用_docker_02

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 使用_docker_03

进入容器

docker exec -it mysql5.7 /bin/bash

docker 使用_docker_04

此时不能通过远程登录,需要授权远程访问:

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