查看本地所有的镜像 输出如下:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest b6487d0ec59e 11 hours ago 456MB
hello-world latest fce289e99eb9 9 months ago 1.84kB
搜索mysql的镜像
$ docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 8696 [OK]
mariadb MariaDB is a community-developed fork of MyS… 3036 [OK]
拉取mysql镜像,就是下载到本地:
$ docker pull mysql:5.7
再次查看本地镜像的时候就会出现 REPOSITORY 和 TAG 分别为 mysql latest:5.7 的一条数据,此时镜像下载成功。
删除一个镜像 必须没有容器使用到这个镜像
$ docker rmi <IMAGE ID>
删除全部镜像:
$ docker rmi $(docker images -q)
重启全部镜像:
$ docker restart $(docker images -q)
查看正在运行的容器
$ docker ps
查看所有的容器,包括未运行的,输出如下:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ce51668a2d85 mysql:latest "docker-entrypoint.s…" 29 minutes ago Exited (0) 3 seconds ago eager_elbakyan
e507d6b10636 hello-world "/hello" 37 minutes ago Exited (0) 37 minutes ago hopeful_bhabha
停止|启动|重启 一个容器
$ docker stop| start|restart <CONTAINER ID>
删除一个容器 必须已经关闭了
$ docker rm <CONTAINER ID>
运行mysql
$ docker run --name mysql -p 3303:3306 -e MYSQL_ROOT_PASSWORD=root1234 -d mysql:5.7
下面的是百度出来的 复杂一点 暂时还没研究:
$ docker run --name mysql -p 3303:3306 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root1234 -d mysql:5.7
-p 3303:3306:将容器的 3306 端口映射到主机的 3303 端口,主机端口在前,容器端口在后,且主机端口可以更改,容器端口想要更改的话需要修改dockerfile。
-v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
此时在本机执行:
mysql -h 127.0.0.1 -P3303 -u root -p
回车,输入密码就可登录mysql。
docker加入开机启动:
$ systemctl daemon-reload
docker 启动 关闭 重启 查看状态:
$ service docker start|stop|restart|status
docker重启之后,容器需要重新启动:
$ docker ps 之后 docker start <CONTAINER ID>