一、Docker常用命令
1.1、镜像相关命令
//1、查看镜像
docker images
//2、搜索镜像
docker search 镜像名称
//3、拉取镜像
docker pull 镜像名称
//4、删除指定镜像
docker rmi 镜像ID
//5、删除所有镜像
docker rmi 'docker images -q'
1.2、容器相关命令
//1、查看容器
docker ps
//2、查看停止的容器
docker ps -f status=exited
//3、创建容器
-i 表示运行容器
-t 表示容器启动后会进入命令行
-v 表示目录映射关系
-p 表示端口映射
docker run
//4、交互式创建容器
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
退出当前容器: exit
//5、守护式创建容器
docker run -di --name=容器名称 镜像名称:标签 /bin/bash
登录守护式容器:
docker exec -it 容器名称(或者容器ID) /bin/bash
//6、停止/启动容器
停止容器 : docker stop 容器名称(容器ID)
启动容器:docker start 容器名称(容器ID)
//7、容器拷贝
docker cp 要拷贝的文件 容器名称:容器目录
//8、查看容器的IP
docker inspect 容器名称(容器ID)
//9、删除容器
docker rm 容器名称(容器ID)
//10、重命名容器
docker rename oldname name
二、常用容器部署
2.1、Mysql部署
//1、拉取Mysql的镜像
docker pull mysql
//2、创建Mysql的容器(指定容器名称为Mysql,端口为3306,密码为123456)
docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
-p 端口映射 宿主机映射端口:容器运行端口
-e 代表添加环境变量,MYSQL_ROOT_PASSWORD是Root用户的登陆密码
//3、远程连接Mysql
ip:3306
例: 192.168.168.128:3306
2.2、Tomcat的部署
//1、拉取Tomcat镜像
docker pull tomcat:7-jre8
//2、创建Tomcat的容器(将容器路径映射到本地路径上)
docker run -di --name=tomcat7 -p 8080:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre8
2.3、Nginx的部署
//1、拉取Nginx的镜像
docker pull nginx
//2、创建Nginx容器
docker run -di --name=nginx -p 80:80 nginx
2.4、Redis的部署
//1、拉取Redis的镜像
docker pull redis
//2、创建Redis容器
docker run -di --name=redis -p 6379:6379 redis
2.5、MongoDB的部署
//1、拉取MongoDB的镜像
docker pull mongo
//2、创建容器
docker run --name=mongo -p 27017:27017 -v $PWD/db:/data/db -d mongo
//3、执行容器
docker exec -it mongo bash
//4、启动mongodb
./usr/bin/mongo
//5、切换数据库
use admin
//6、创建用户添加权限
db.createUser({ user: "root", pwd: "root", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
//7、退出
exit
2.6、RabbitMQ的部署
//1、拉取RabbitMq的镜像
//带management的版本可以打开UI界面
docker pull rabbitmq:management
//2、创建容器
#方式一:默认guest用户,密码也是guest
docker run -d --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq
#方式二:设置用户名和密码
docker run -d --name rabbit -e RABBITMQ_DEFAULT_USER=waggag -e RABBITMQ_DEFAULT_PASS=123456 -p 15672:15672 -p 5672:5672 rabbitmq
//3、访问UI界面(linux可以使用curl进行本地访问)
http://localhost:15672/
三、Docker容器常见设置
1、阿里云镜像加速器
https://cr.console.aliyun.com/cn-shenzhen/instances/mirrors
2、配置镜像加速器
Docker客户端版本大于 1.10.0 的用户,您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://b8s7sijn.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
四、容器的迁移和备份
//1、容器保存为镜像
docker commit nginx nginx_image
//2、将保存的镜像备份
docker save -o nginx.tar nginx_image
//3、镜像恢复与迁移
docker load -i nginx.tar
五、Docker私有镜像
//1、拉取私有仓库的镜像
docker pull registry
//2、创建并执行私有仓库容器
docker run -di --name=registry -p 5000:5000 registry
//3、连接看是否搭建成功
http://ip:port/v2/_catalog
例: http://192.168.168.128:5000/v2/_catalog
//4、修改修改daemon.json,添加以下内容,让docker信任私有仓库
{
"insecure-registries":[192.168.168.128:5000]
}
//5、上传私有镜像
//5.1、标记镜像
docker tag mysql:latest 106.12.55.66:5000/waggag/mysql:latest
//5.2、上传镜像
docker push 106.12.55.66:5000/waggag/mysql:latest