一、Docker常用的命令
1、启动/重启Docker
systemctl start docker/systemctl restart docker
修改配置文件后重启docker
systemctl daemon-reload
systemctl restart docker
2、停止Docker
systemctl stop docker
二、镜像相关命令
1、查询本机中的所有镜像
docker images
2、搜索Docker hub上面的镜像
# 普通搜索,以Tomcat为例
docker search tomcat
# 搜索star大于50的镜像实例
docker search -s 50 tomcat
3、从Docker Hub上面下载镜像
# 以下载tomcat为例
docker pull tomcat[:version]
4、删除本地的镜像
# 以删除tomcat为例
docker rmi tomcat/镜像id
# 通过镜像ID删除
docker rmi -f 镜像ID
# 通过镜像ID删除多个
docker rmi -f 镜像名1:TAG 镜像名2:TAG
# 删除全部
# docker images -qa : 获取所有镜像ID
docker rmi -f $(docker images -qa)
三、容器相关的命令
1、查看当前Docker 容器
docker ps -a --参数
# 列出当前正在运行的以及历史上运行过的
-a
# 显示最近创建的容器
-l
# 显示最近创建的N个容器
-n
# 静默模式,只显示容器编号
-q
# 不截断输出
--no-trunc
2、启动/重启容器
docker start 容器ID或容器name
或
docker restart 容器ID或容器name(重启)
3、停止容器
docker stop 容器ID或容器name
或
docker kill 容器ID或容器name(强制停止)
4、删除容器
# 删除已经停止的容器
docker rm 容器ID或容器name
# 强制删除已经停止或正在运行的容器
docker rm -f 容器ID或容器name
一次性删除所有正在运行的容器
docker rm -f $(docker ps -qa)
5、进入容器
docker exec -it 容器id/容器名称 bash
6、运行镜像,启动容器
docker run --name 镜像名称
四、mysql镜像启动和挂载说明(详解)
1、拉取mysql镜像
命令: docker pull mysql:5.6.35
2、创建宿主机挂载目录(实现数据持久化,容器删除了数据依然存在)
创建数据库相关的目录,如:logs、data、conf,用来挂在容器中的mysql数据库的目录文件,实现数据同步传递、确保数据的持久化,创建的目录需要配置相应的读写权限,如:chmod 777 $MYSQL_HOME/*
3、在conf目录中创建my.conf 文件,设置mysql配置
[mysqld]
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
datadir=/var/lib/mysql
port = 3306
server_id = 1
#绑定mysql可以接受来自哪些ip地址客户端的访问;使用docker运行mysql服务,并且其他docker容器需要访问mysql的话,需要使用该参数来绑#定其他docker容器也能访问的ip地址,一般docker使用172.17.0.1这个地址
bind-address = 0.0.0.0
#设置客户端链接时使用的字符编码
init_connect=’SET NAMES utf8’
character_set_server = utf8
[mysql]
default-character-set = utf8
[client]
default-character-set = utf8
[mysql.server]
default-character-set = utf8
4、运行并挂载目录到mysql容器
# 命令:
docker run --name mysql
-p 3306:3306
-e MYSQL_ROOT_PASSWORD=123456
-d mysql:5.6.35
-v /usr/local/docker_mysql/conf:/etc/mysql/conf
-v /usr/local/docker_mysql/data:/var/lib/mysql
-v /usr/local/docker_mysql/logs:/var/log/mysql
# 参数说明
--name:设置容器名称
-p:端口映射关系,标识通知Docker将容器内部使用的网络端口映射到我们使用的主机上
-e:设置环境变量,或者覆盖已存在的环境变量
-d:标识是让docker容器在后台运行
-v:设置挂在目录映射关系
MYSQL_ROOT_PASSWORD=123456:设置容器中mysql的root用户的密码
补充:
连接mysql命令:mysql -uroot -p123456 -h127.0.0.1 -P3307
开放端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙:firewall-cmd --reload
允许客户端远程连接mysql:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';