![](https://i-blog.csdnimg.cn/blog_migrate/431f24d47c0dededabdf7fef36bf5889.png)
4.2 Docker核心概念
- docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
- docker客户端(Client):连接Docker主机进行操作;
- docker仓库(Registry):用来保存各种打包好的软件镜像;
- docker镜像(Images):软件打包好的镜像;放在docker仓库中;
- docker容器(Container):镜像启动后的实例称为一个容器;容器独立运行一个或一组应用;
4.3Docker的使用步骤
- 安装Docker
- 去Docker仓库找到这个软件对应的镜像;
- 使用Docker运行这个镜像,这个镜像就会生成一个Docker容器;
- 对容器的启动停止就是对软件的启动与停止;
4.4 安装Docker
4.4.1安装Liunx虚拟机
1. 安装虚拟机
1. VMWare和VirtualBox任选一个;
2. 下载,安装虚拟机文件;
3. 启动liunx虚拟机,输入账号密码登录;
4. 使用liunx客户端访问链接服务器进行命令操作;
5. 设置虚拟机的[网络]
- 链接方式:桥接网络
- 界面名称:单前使用的网卡
- 接入网线:勾选
6. 设置好网络以后使用命令重启虚拟机的网络;
```
service network restart
```
7. 查看liunx的ip地址
```
ip addr
```
8. 使用客户端链接即可
2. 在liunx虚拟机上安装docker
2.1 步骤
- 检查liunx内核版本,必须是3.10及以上;
uname -r
- 安装docker
yum install docker
- 启动docker,并查看版本
systemctl start docker
docker -v
- 设置开机启动
systemctl enable docker
- 关闭docker
systemctl stop docker
4.5 常用命令
4.5.1镜像操作
操作 | 命令 | 说明 |
---|---|---|
检索 | docker search 关键字 eg:docker search redis | 我们经常去docker hub 上检索镜像的详细信息,如镜像的TAG |
拉取 | docker pull 镜像名:tag | :tag是可选的,tag表示软件的标签,多为软件的版本,默认是lalest |
列表 | docker images | 查看所有本地镜像 |
删除 | docker rmi image-id | 删除指定的本地镜像 |
4.5.2容器操作
软件镜像一运行镜像—产生一个容器(正在运行)
1.步骤
- 第一步搜索镜像
[root@localhost ~]# docker search tomcat
- 拉取镜像
[root@localhost ~]# docker pull tomcat
- 根据镜像启动容器
[root@localhost ~]# docker run --name mytomcat -d tomcat:latest
- 查看docker中运行的程序
[root@localhost ~]# docker ps
- 停止运行中的容器
[root@localhost ~]# docker stop 容器的id
- 查看所有的容器
[root@localhost ~]# docker ps -a
- 启动一容器
[root@localhost ~]# docker start 容器id
- 删除容器
[root@localhost ~]# docker rm 容器id
- 启动一个做了端口映射的tomcat
[root@localhost ~]# docker run --name mytomcat -d -p 8888:8080 tomcat:latest
-d:后台运行
-p:将主机的端口映射到docker
- 查看防火墙状态
[root@localhost ~]# service firewalld status
- 临时关闭防火墙
service firewalld stop
- 查看docker日志
[root@localhost ~]# docker logs ad982dfaae3a
- 更多的命令
docker管网文档
4.5.3 安装mysql
- 安装mysql
docker pull mysql
- 错误的运myqsl行方式
[root@localhost ~]# docker run --name mysql01 -d mysql
2864c50093056e261c4b44c68106d860c8d455350585970e353bfe6cc3b63418
mysql退出了
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2864c5009305 mysql "docker-entrypoint..." 19 seconds ago Exited (1) 19 seconds ago mysql01
ad982dfaae3a tomcat:latest "catalina.sh run" 15 hours ago Exited (143) 14 hours ago mytomcat
[root@localhost ~]# docker logs 2864c5009305
// 错误日志
2019-11-07 14:23:05+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.18-1debian9 started.
2019-11-07 14:23:05+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2019-11-07 14:23:05+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.18-1debian9 started.
2019-11-07 14:23:05+00:00 [ERROR] [Entrypoint]: 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
这三个参数必须指定一个
- 正确的使用
root@localhost ~]# docker run -p 3306:3306 --name mysq01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
708a286d1395b55a3988008134aa5302d96e364aac2e971bd3caa96d8fb2fb41
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
708a286d1395 mysql "docker-entrypoint..." 11 seconds ago Up 10 seconds 3306/tcp, 33060/tcp mysq01
ad982dfaae3a tomcat:latest "catalina.sh run" 15 hours ago Exited (143) 15 hours ago mytomcat
报错2059 : Authentication plugin ‘caching_sha2_password’ cannot be loaded:
- 接着运行docker exec -it 容器id /bin/bash进入mysql容器
- 再接着输入mysql -u root -p命令,然后输入自己的密码
- 然后输入更新密码语句:ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
- 输入'exit‘ 退出mysql
- 按 ctrl+p+q 退出容器并继续保持容器的运行
- 最后重启mysqldocker restart 容器