Docker快速入门


安装docker

  1. 安装依赖

    sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
  2. 信任docker的GPG公钥

    curl -fsSL <https://download.docker.com/linux/ubuntu/gpg> | sudo apt-key add -
  3. 添加软件仓库

    sudo add-apt-repository \\
       "deb [arch=amd64] <https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu> \\
       $(lsb_release -cs) \\
       stable"
  4. 更新源,并安装

    sudo apt-get update
    sudo apt-get install docker-ce
  5. 添加用户组后,重启电脑

    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

img


评论
  目录