Docker安装和基本使用

Docker安装和基本使用

官网:https://www.docker.com/

文档:https://docs.docker.com/

仓库:https://hub.docker.com/

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
原文地址:https://www.cnblogs.com/pinked/p/13697023.html