DOCKER安装使用(基础篇)

基于狂神视频手码制作的笔记摘录 – 感谢狂神无私讲解!
保持学习和实践!

关于Docker

放图一张 学完基础可以回过头重新理解这张图!
在这里插入图片描述

关于安装


1 yum remove docker \
                   docker-client \
                   docker-client-latest \
                   docker-common \
                   docker-latest \
                   docker-latest-logrotate \
                   docker-logrotate \
                   docker-engine



2 yum -y install gcc

3 yum -y install gcc-c++

4 yum install -y yum-utils

5 yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
	
	
6 yum makecache fast

7 yum install docker-ce docker-ce-cli containerd.io


8 systemctl start docker

9 docker version
10 docker run hello-world

阿里云服务器镜像加速(非必须)

找到阿里的镜像加速器后按照以下步骤执行

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://c4kwo7rk.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

docker的常用命令

帮助命令

docker version
docker info

官网地址

https://docs.docker.com/engine/reference/commandline

镜像命令

docker images 查看所有本地镜像

docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

# 解释
REPOSITORY   仓库源  
TAG        标签
IMAGE ID   镜像ID
CREATED    创建时间
SIZE       大小
# 可选项
  -a, --all             # 列出所有镜像
  -q, --quiet           # 显示镜像ID

docker search 搜索镜像

docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   10656     [OK]       
mariadb                           MariaDB Server is a high performing open sou…   3997      [OK]       
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   779                  [OK]

# 可选项
--filter=STARS=3000  # 搜索大于3000的镜像

docker pull 下载镜像

# 下载镜像 docker pull 镜像名[:tag]
[root@iZ2vc20ehn0q0ihrgccmd2Z /]# docker pull mysql
Using default tag: latest       # 不写tag 默认最新
latest: Pulling from library/mysql
a076a628af6f: Pull complete    # 分层下载  docker image核心
f6c208f3f991: Pull complete 
88a9455a9165: Pull complete 
406c9b8427c6: Pull complete 
7c88599c0b25: Pull complete 
25b5c6debdaf: Pull complete 
43a5816f1617: Pull complete 
1a8c919e89bf: Pull complete 
9f3cf4bd1a07: Pull complete 
80539cea118d: Pull complete 
201b3cad54ce: Pull complete 
944ba37e1c06: Pull complete 
Digest: sha256:feada149cb8ff54eade1336da7c1d080c4a1c7ed82b5e320efb5beebed85ae8c  #签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest     #真实地址


# 等价
docker pull mysql  ==== docker pull docker.io/library/mysql:latest

docker rmi 删除镜像

docker rmi -f 镜像ID          # 删除指定镜像

docker rmi -f 镜像ID 镜像ID 镜像ID 镜像ID  # 删除多个指定镜像

docker rmi -f $(docker images -aq)     #删除全部镜像

容器命令

ps: 有镜像才可以创建容器 下载新的centos 测试

docker pull centos

新建容器并启动

docker run [可选参数] image

# 参数说明
--name="name"   容器名字
-d				后台方式运行
-it				使用交互方式运行 进入容器查看内容
-p			指定容器端口 -p 8080:8080
	-p      ip:主机端口:容器端口
	-p		主机端口:容器端口(常用)
	-p		容器端口
-p				随机指定端口



#测试 启动并进入容器
root@iZ2vc20ehn0q0ihrgccmd2Z ~]# docker run -it centos /bin/bash
[root@c89d1194aa03 /]# ls         # 查看容器内的centos 基础版本 命令不完善
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
#从容器中退回主机
[root@c89d1194aa03 /]# exit
exit
[root@iZ2vc20ehn0q0ihrgccmd2Z ~]# 

列出所有运行的容器

# docker ps 命令
-a #列出当前正在运行的容器+带出历史运行过的容器
-n=? #显示最近创建的容器
-q #显示容器编号

docker ps -a

退出容器

exit #直接退出容器
Ctrl + P + Q #容器不停止退出

删除容器

docker rm 容器id        #删除指定容器
docker rm -f $(docker ps -aq) #删除所有容器
docker ps -a -q|xargs docker rm #删除所有容器

启动和停止容器的操作

docker start 容器ID
docker restart  容器ID
docker stop 容器ID
docker kill 容器ID

常用其他命令

后台启动容器

# docker run -d 镜像名
docker run -d centos
# docker ps 发现centos停止了
docker容器使用后台运行 必须要有一个前台进程 没有会自动停止

查看日志

docker logs -f -t --tail xx 容器ID

-tf #显示日志
--tail number #显示日志条数
docker logs -f -t --tail 10 e938a049e901

查看容器中的进程信息

# docker top 容器ID
docker top e938a049e901

查看镜像元数据

docker inspect 容器ID

进入当前正在运行的容器

# 通常容器都是使用后台方式运行 需要进入容器 修改一些配置
# 命令
docker exec -it 容器ID  /bin/bash       #进入容器后开启一个新的终端 可以在里面操作(常用)


# 方式二
docker attach 容器ID						#进入容器正在执行的终端 不会启动新的进程

从容器内拷贝文件到主机上

docker cp 容器id:容器内路径 目的的主机路径

#测试
[root@iZ2vc20ehn0q0ihrgccmd2Z home]# docker attach e938a049e901  #进入容器
[root@e938a049e901 /]# cd /home/
[root@e938a049e901 home]# ls
[root@e938a049e901 home]# touch testbbb.java			#在容器内创建文件
[root@e938a049e901 home]# exit
exit
[root@iZ2vc20ehn0q0ihrgccmd2Z home]# docker cp e938a049e901:/home/testbbb.java /home
[root@iZ2vc20ehn0q0ihrgccmd2Z home]# ls
testaaa.java  testbbb.java  www  xuan  xuanmeng
[root@iZ2vc20ehn0q0ihrgccmd2Z home]# 


# 拷贝是一个手动过程 未来使用 -v 卷的技术 实现自动同步

作业1 nginx


docker search nginx
docker pull nginx
# -d 后台运行
# --name 命名
# -p 3344:80  宿主机端口:容器内部端口
[root@iZ2vc20ehn0q0ihrgccmd2Z home]# docker run -d --name nginx001 -p 3344:80 nginx
72ac7697aa7c7625f6848698b2321388ea4f6d4a90474b18bf1dc75a9a6b5e90
[root@iZ2vc20ehn0q0ihrgccmd2Z home]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                  NAMES
72ac7697aa7c   nginx     "/docker-entrypoint.…"   14 seconds ago   Up 13 seconds   0.0.0.0:3344->80/tcp   nginx001
[root@iZ2vc20ehn0q0ihrgccmd2Z home]# curl localhost:3344
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>


#进入容器
docker exec -it 容器ID

作业2 安装tomcat

# 官方使用
docker run -it --rm tomcat:9.0    # 下载测试完就删除

# 一般使用
docker pull tomcat
docker run -d -p 3355:8080 --name tomcat001 tomcat


#进入容器
docker run -d -p 3355:8080 --name tomcat001 tomcat

作业3 部署es + kibana

# es 暴露的端口很多
# es 十分耗内存
# es 数据一般需要放置到安全目录挂载
# --net somenetwork

# 下载启动es
docker run -d --name elasticsearch  -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2

# 启动后linux会非常卡   docker stats 查看



#修改配置文件
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAV_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2

可视化

  • portainer
  • Rancher

commit镜像

docker commit 提交容器成为一个新的副本

docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[tag]


实战测试

[root@iZ2vc20ehn0q0ihrgccmd2Z home]# docker commit -a="xm" -m="add something" b954c8badbcc tomcat-xm:1.0
sha256:9f3cb5e05184a065fc5bec51893380e9f9517bc33b90b71bdd5b0c767dd70d69
[root@iZ2vc20ehn0q0ihrgccmd2Z home]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED          SIZE
tomcat-xm     1.0       9f3cb5e05184   44 seconds ago   654MB

Docker进阶篇:》》》》点击进入》》》》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值