安装docker
安装依赖
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
信任docker的GPG公钥
curl -fsSL <https://download.docker.com/linux/ubuntu/gpg> | sudo apt-key add -
添加软件仓库
sudo add-apt-repository \\ "deb [arch=amd64] <https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu> \\ $(lsb_release -cs) \\ stable"
更新源,并安装
sudo apt-get update sudo apt-get install docker-ce
添加用户组后,重启电脑
sudo adduser $USER docker
启动docker
sudo service docker start
重启docker
sudo service docker restart
拉取镜像
# 默认拉取最新版本latest
docker pull mysql
# 拉取zookeeper 报错 408,解决方法:安装加速器
curl -sSL <https://get.daocloud.io/daotools/set_mirror.sh> | sh -s <http://f1361db2.m.daocloud.io>
查看所有镜像
# 所有运行中的镜像
docker image ls
# 所有安装好的镜像
docker images
删除镜像
docker rmi [names]
启动容器
启动mysql
为例:
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql[:5.6]
# 启动zookeeper
docker run --privileged=true --name zookeeper --publish 2181:2181 -d zookeeper:latest
# 启动redis
docker run -p 6379:6379 -d redis:latest redis-server
# 启动rabbitmq 5672是应用访问端口号, 15672是控制台端口号
docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:management
-name
:起别名- 映射端口
3306
MYSQL_ROOT_PASSWORD
:指定密码d
:指定运行模式,不会进入容器[:5.6]
:指定版本,可省略-privileged=true
赋予root权限
查看当前docker容器的运行状态
docker ps # 查看运行中的容器
docker ps -a # 查看所有创建的容器
进入容器
docker exec -it mysql bash
# 进入MySQL
mysql -u root -p 密码
停止容器
docker stop [containerId / names]
启动一个已停止的容器
docker start [containerId / names]
删除容器
docker rm [containerId / names]
# 一次删除所有停止的容器
docker rm $(docker ps -a -q)
映射外部文件夹
以Tomcat
为例:
docker run --name tomcat -p 8089:8080 -v /d/mydockertomcat:/usr/local/tomcat/webapps -d tomcat
v
:映射文件夹/d/mydockertomcat:/
:本地D盘,mydockertomcat文件夹/usr/local/tomcat/webapps
:容器中tomcat文件夹Tomcat访问404,解决方法:需要把webapps.dist里所有的内容放置在webapps下才可以
修改webapps文件夹时报错:
Device or resource busy
- 原因:挂载外部文件夹的原因,只能把webapps.dist下所有文件移动到webapps文件夹下
保存修改后的镜像
docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]
docker commit --author "zhou" --message "修复404" tomcat tomcat:v2
查看容器ip
docker inspect redis_s | grep IPAddress