# docker入门
# docker安装MySQL
> docker pull mysql:5.7.28
> docker run -p 3306:3306 --name mysql-jesse -e MYSQL_ROOT_PASSWORD=a123456 mysql:5.7.28
# arm平台用docker安装mysql
https://hub.docker.com/r/beercan1989/arm-mysql
1.使用docker仓库中的arm mysql镜像> docker pull beercan1989/arm-mysql
2.启动
临时启动
docker run -it \ -e 'MYSQL_ROOT_PASSWORD=123456' \ -e 'MYSQL_DATABASE=test' \ -e 'MYSQL_USER=jesse' \ -e 'MYSQL_PASSWORD=123456' \ -p '3306:3306' \ --name mysql \beercan1989/arm-mysql:latest
volume mounted 启动
docker run -it \ -e 'MYSQL_ROOT_PASSWORD=123456' \ -e 'MYSQL_DATABASE=test' \ -e 'MYSQL_USER=jesse' \ -e 'MYSQL_PASSWORD=123456' \ -p '3306:3306' \ --name mysql \ -v datadir:/home/jesse/mysql \beercan1989/arm-mysql:latest
# docker配置国内镜像加速
以下仅在ubuntu使用过
# 修改daemon配置文件
> sudo mkdir -p /etc/docker
> sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF
# 使配置生效
> sudo systemctl daemon-reload
> sudo systemctl restart docker
# docker中安装&使用redis
- 查找redis镜像> docker search redis
- 拉取redis镜像> docker pull redis
- 查看拉取是否成功> docker images
- 启动redis镜像> docker run -p6379:6379 -d redis:latest redis-server
- 查看容器启动情况> docker ps
- 连接redis的几种方式
docker exec -ti d0b86 redis-cli
docker exec -ti d0b86 redis-cli -h localhost -p 6379
docker exec -ti d0b86 redis-cli -h 127.0.0.1 -p 6379
docker exec -ti d0b86 redis-cli -h 172.17.0.3 -p 6379
// 注意,这个是容器运行的ip,可通过 docker inspect redis_s | grep IPAddress 查看
使用docker执行命令连接到启动的容器> docker exec -it redis_s redis-cli
远程连接的方式> docker exec -it redis_s redis-cli -h 192.168.1.100 -p 6379 -a your_password //如果有密码 使用 -a参数
# docker指定容器运行端口映射
\1. 指定容器端口, 宿主机端口随机映射> docker run -p80 -i -t ubuntu /bin/bash
\2. 同时指定宿主机和容器端口, 两者一一对应> docker run -p 8080:80 -i-t ubuntu /bin/bash
\3. 指定ip和容器端口> docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash
\4. 指定ip, 宿主机端口, 容器端口都指定> docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash
# 基础命令
# docker search
需要使用哪个镜像, 直接使用search搜索
> docker search mysql
# docker pull
# 直接pull latest镜像
> docker pull mysql
# pull指定tag镜像 image:tag
> docker pull mysql:5.7.28
# docker run
# 示例1, 启动mysql镜像
> docker run -p 3306:3306 --name mysql-jesse -e MYSQL_ROOT_PASSWORD=a123456 mysql:5.7.28
# 示例2, 启动redis镜像
> docker run -p6379:6379 -d redis:latest redis-server
# -i是开启交互式 -t表示分配一个tty伪终端
> docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
# docker ps
查看容器启动进程情况
如果要查看上次停掉的容器进程,需要使用
docker ps -a
# docker images [options] [repository]
查看镜像
-a, --all=false -f, --filter=[] --no-trunc=false -q, --quiet=false
# docker inspect [options] container|image
查看镜像信息
-f, --format="" --no-prune=false
# docker start
启动停止的容器
docker start [CONTAINER ID|NAMES]
# docker stop
停止运行的容器
# docker exec
为运行中容器启动新的进程命令
# docker rm
删除容器
# docker rmi
删除镜像
# docker logs
查看容器日志
# docker top
查看容器进程
# man查看使用手册
man docker-run man docker-exec
← Summary