Docker安装和基本使用
Docker安装和基本使用
Docker的基本组成
镜像(image):相当于一个模板,通过这个模板来创建容器服务
容器(container):Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建
仓库(repository):存放镜像的地方,Docker hub 类似于Maven仓库,国内需要配置镜像加速
安装
#先卸载旧版本的docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#Install using the repository(通过仓库安装)
#安装yum工具
yum install -y yum-utils
#设置镜像仓库
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #使用阿里云的镜像
#更新yum索引
yum makecache fast
#安装docker
yum install docker-ce docker-ce-cli containerd.io
#启动docker及测试
systemctl start docker
docker run hello-world
docker version #查看版本
# /var/lib/docker docker的默认工作路径
阿里云容器镜像服务
地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
1. 安装/升级Docker客户端
推荐安装1.10.0以上版本的Docker客户端,参考文档 docker-ce
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://nw5osvoi.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker的常用命令
基本命令:https://docs.docker.com/engine/reference/commandline/docker/
镜像命令
docker images #查看镜像
docker images -a #查看所有镜像
docker images -q #查看镜像id
docker search mysql #搜索镜像
docker pull mysql #下载镜像,默认下载最新版本
docker pull mysql:5.7 #指定下载版本
docker rmi -f ef08065b0a30 #根据id删除镜像
docker rmi -f $(docker images -aq) #删除所有镜像
容器命令
#先准备一个centos镜像
docker pull centos
docker run centos #初始化容器
docker run -it centos /bin/bash #启动并进入容器
exit #退出容器
docker ps #正在运行的容器
docker ps -a #所有运行过的容器
docker ps -n=3 #最近运行过的n个容器
ctrl + p + q #退出但不停止容器
docker rm -f id #删除容器
docker rm -f $(docker ps -aq) #删除所有容器
docker start id #启动容器
docker restart id #重启容器
docker stop id #停止容器
docker kill id #强制停止容器
docker run -d centos #后台启动
docker logs -tf -tail number 容器id #查看日志
docker top 容器id #容器内的进程信息
docker inspect 容器id #容器信息
docker exec -it 79e73008fec3 /bin/bash #进入正在运行的容器(在新的终端上)
docker attach 79e73008fec3 #进入正在运行的容器(在已有的终端上)
docker cp e1cc2f3118f1:/home/a.java /home #从容器中复制到主机
测试
nginx
#-d 后台运行,--name 为容器命名为nginx01,-p 映射端口从本机的3344到容器的80
docker run -d --name nginx01 -p 3344:80 nginx
#测试访问
curl localhost:3344
docker stop bbc74ec441db #停止后则无法访问
tomcat
docker run -d --name tomcat01 -p 9000:8080 tomcat
#测试访问
curl localhost:9000 #404,因为镜像中下载的默认是最小镜像,剔除了一部分的东西,只保证了最小可运行环境
#进入容器
docker exec -it tomcat01 /bin/bash
cd webapps.dist/ #在webapps.dist目录下可以看到默认的引导页
cp webapps.dist/* webapps/ #复制到webapp中,就可以访问到正常页面了
es
#为es分配最大最小内存空间
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.8.0
curl localhost:9200
可视化面板portainer
docker run -d -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
1cc96e59f8cfb6b565e2f3151eb0f5c796c8ae3919e175a4070907688ac2a722
访问http://ip:9000即可
镜像操作
docker commit #提交
docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[TAG]
docker commit -m="add webapps" -a="pinked" f6bebabec110 myTomcat:1.0