1. 使用docker部署mysql
docker run -d --name mysql -p 3306:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=root mysql
客户端连接虚拟机的ip:3306端口
命令解读:
docker run #创建并运行一个容器
-d #让容器在后台运行
--name mysql #给容器起个名字mysql,名称必须唯一
-p 3306:3306 #设置端口映射(前面是宿主机端口,后面是容器端口)
-e KEY=VALUE #设置容器的环境变量
TZ=Asia/Shanghai #设置容器时区为东八区
mysql #容器使用的镜像名
镜像命名规范:
[repository]:[tag]
其中repository
是镜像名
tag
是镜像版本
没有指定tag
时,默认是latest
,代表最新版本的镜像
查看容器
docker inspect 容器名(容器id)
会发现容器中有一个IPAddress
字段,值是172.17.0.2
在宿主机ping172.17.0.2
,可以ping通
在外部ping172.17.0.2
,无法ping通
所以外部无法通过容器的ip直接连接容器
将容器的端口映射到宿主机后,外部访问宿主机的端口时,docker会把请求转发到容器的IP和端口,这样就访问到了容器
2. 使用docker拉取nginx镜像并运行nginx的容器
2.1 拉取nginx镜像
docker pull nginx
2.2 查看本地镜像
docker images
2.3 将镜像导出到本地
docker save -o nginx.tar nginx:latest
2.4 删除镜像
docker rmi nginx:latest
2.5 导入镜像
docker load -i nginx.tar
2.6 创建并运行nginx容器
docker run -d --name nginx -p 80:80 nginx
2.7 查看运行中的容器
docker ps
2.8 比较清爽地查看容器
docker ps --format "table {{.ID}} {{.Image}} {{.Ports}} {{.Status}} {{.Names}}"
2.9 停止容器
docker stop 容器
2.10 查看所有的容器(包含已经停止的容器)
docker ps -a
2.11启动已经停止的容器
docker start 容器
2.12查看容器日志
docker logs 容器 -f
-f
follow 跟踪查看日志(Ctrl C退出)
2.13 进入容器内部
docker exec -it 容器 bash
exec
excute 执行
-it
添加命令行终端
2.14 docker命令别名
vi ~/.bashrc
添加两个命令
alias dps='docker ps --format "table {{.ID}} {{.Image}} {{.Ports}} {{.Status}} {{.Names}}"'
alias dis='docker images'
使配置生效
source ~/.bashrc
测试
dps
dis