docker
一、docker 安装
1、检查内核版本 必须在3.0以上
uname -r
[root@root /]# uname -r
3.10.0-862.el7.x86_64
2、安装docker
yum install docker
3、输入y确认安装
4、启动docker
systemctl start docker
查看docker版本 docker -v
5、开机启动
systemctl enable docker
二、docker 命令
docker search xxx(docker search mysql) 搜索镜像
docker pull name (拉取镜像)
eg: docker pull mysql 下载最新版的latest
docker pull name:tag
eg:docker pull mysql:5.7.19 下载指定的tag版本
docker images 查看本地所有镜像
[root@root /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7.19 3e3878acd190 23 months ago 412MB
docker rmi imageId 删除镜像
eg:docker rmi 3e3878acd190
三、启动docker容器步骤
以tomcat为例:
1、搜索镜像
docker search tomcat
2、拉取镜像
docker pull tomcat
3、启动容器
docker run --name container-name -d image-name
container-name 容器名称
-d 后台运行
image-name 镜像名称
eg: docker run --name mytomcat -d tomcat:latest
4、查看运行中的容器
docker ps
查看所有的容器 docker ps -a
5、停止容器
docker stop container-name/container-id
6、启动容器
docker start container-name/container-id
7、删除容器
docker rm container-id
8、端口映射
-p 8888:8080
将虚拟机的8888端口映射到容器的8080
eg:docker run -d -p 8888:8080 tomcat(不指定容器名称)
或者
eg:docker run -d -p 8888:8080 --name mytomcat docker.id/tomcat
9、容器日志
docker logs container-name/container-id
10、service firewalld status 防火墙状态
11、service firewalld stop 暂时关闭防火墙
四、启动MySQL
#省略搜索下载
查看安装的镜像
[root@root /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest ee48881b3e82 29 hours ago 506MB
mysql 5.7.19 3e3878acd190 23 months ago 412MB
运行mysql
docker run -d --name mysql -p 3306:3306 mysql:5.7.19
查看mysql运行状态
[root@root /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a407363a0a5f mysql:5.7.19 "docker-entrypoint.s…" About a minute ago Exited (1) About a minute ago mysql
3e53fbd0909e tomcat "catalina.sh run" 10 minutes ago Up 10 minutes 0.0.0.0:8888->8080/tcp modest_swirles
发现mysql退出了
查看容器日志
docker logs container-id
[root@root /]# docker logs a407363a0a5f
error: database is uninitialized and password option is not specified
You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
这三个参数必须指定一个
删除容器
docker rm container-name
重新启动
[root@root /]# docker run -d -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.19
256a46e32a8142257e5e90993083ce9278817999d64c816d86eb7132eeeabad4
[root@root /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
256a46e32a81 mysql:5.7.19 "docker-entrypoint.s…" 10 seconds ago Up 9 seconds 0.0.0.0:3306->3306/tcp mysql01
3e53fbd0909e tomcat "catalina.sh run" 18 minutes ago Up 18 minutes 0.0.0.0:8888->8080/tcp modest_swirles
命令行操作mysql
docker exec -it container-name bash
docker exec -it mysql01 bash
mysql -u root -p