1.镜像 image
2.容器 container
3.仓库 repository
一:安装Docker
1.CentOS7
2.uname -r //查看系统内核
3.cat /etc/os-release //查看系统配置
4.安装Docker https://docs.docker.com/engine/install/centos/
1.卸载
2.需要的安装包
yum install -y yum-utils
3.设置镜像地址
sudo yum-config-manager \
--add-repo \
官方源 更改**https://download.docker.com/linux/centos/docker-ce.repo
使用阿里国内源安装docker
更新yum索引 yum makecache fast
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io //ce 社区版 ce-cli 最新版
4.启动docker 测试helloworld
systemctl start docker
docker version
增5.docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
docker: Get https://registry-1.docker.io/v2/library/hello-world/manifests/sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792: net/http: TLS handshake timeout.
See 'docker run --help'.
查6.查看镜像
docker images
下载 1.yum remove docker-ce docker-ce-cli containerd.io
2.rm -rf /var/lib/docker 删除资源
3. /var/lib/docker docker的默认工作路径
阿里云镜像加速
1.2. 配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
加速器地址
https://8xfm2kco.mirror.aliyuncs.com
https://8xfm2kco.mirror.aliyuncs.com
复制
1sudo mkdir -p /etc/docker
2sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://8xfm2kco.mirror.aliyuncs.com"]
}
EOF
3 sudo systemctl daemon-reload
4 sudo systemctl restart docker
Docker常用命令
1.docker version
2.docker info
3.docker --help
镜像命令
1.docker images
镜像仓库源 镜像标签 镜像ID 创建时间 大小
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 6 weeks ago 13.3kB
-a
-q 只显示ID
2.docker search
通过收藏来过滤
–filter=STARS=3000
3.docker pull mysql:latest
*分层下载
4.docker rmi -f mysql:latest
5.docker rmi -f $(docker images -aq)
容器命令 有了容器才能创建容器
1.docker pull centos
2.docker run [] image
--name="Name"
-d 后台运行 nohop
-it 使用交互方式
-p ip:指定容器端口 -p 8080:8080
-p 主机端口:容器端口
-p 容器端口
-P
3. 启动进入容器docker run -it centos /bin/bash
4. docker ps [-a] 历史进程
5.docker ps -aq 列出所有容器
6.exit
7.CTRL+P+Q 容器不停止退出
8.docker rm -f $(docker ps -aq) 删除所有容器
9.docker rm 不能删除正在运行的容器
10.docker ps -a -q | xargs docker rm 删除所有容器
11.docker start 容器id
12.docker stop 容器id
13.docker kill 容器id
14.docker restart
常用的其他命令
1.docker run -d centos 后台启动
2.坑 docker容器使用后台运行 就必须要有一个前台应用 否则就自杀
3.docker logs -f -t --tail 10 da3b0bd6ca23
4. 脚本
docker run -d centos /bin/sh -c "while true:do echo kuangshen;sleep 1;done"
5.docker logs -f -t --tail 3 da3b0bd6ca23
6.docker top
7.docker inspect 容器id 查看元数据信息
8。进入容器修改配置
docker exec -it 容器ID
docker attach 进入容器正在执行的终端 不会启动新的进程
9.docker cp 容器id :容器内路径
10。docker run -it centos /bin/bash
11。从容器内向外边copy dockerp cp eaf3232b4c84:/home/doucer.java /home
12
============================================================================================================
1.部署Nginx
1.搜索镜像
2.docker pull nginx 下载镜像
外部端口:容器端口 端口暴露
3.docker run -d --name nginx01 -p:3344:80 nginx
4.curl localhost:3344
5.docker exec -it nginx01 /bin/bash 进入容器
2.部署tomcat
1.docker run -it --rm tomcat:9.0 //用完即删 不推荐
2.docker run -d -p 3355:8080 --name tomcat01 阉割版 剔除了所有东西 只有框架 最小可运行环境
3.docker exec -it tomcat01 /bin/bash
4./usr/local/tomcat/webapps.dist
cd /usr/local/tomcat/webapps.dist/
5.cp -r webapps.dist/* webapps
6.在容器外提供映射路径 在外部放置项目 就自动同步到内部好了
3.部署es+kibana
es暴露的端口很多 非常耗内存 es的数据必须放置到安全目录
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
elasticsearch非常耗内存 需要解决
docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
fce1eb4aa711 elasticsearch 0.53% 1.26GiB / 7.62GiB 16.53% 656B / 0B 0B / 1.9MB 45
curl localhost:9200