Docker入门学习

安装

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

uname -r

 2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

sudo yum update

3、卸载旧版本(如果安装过旧版本的话)

sudo yum remove docker  docker-common docker-selinux docker-engine


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

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

5、设置yum源

官方
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

阿里
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

6、可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

7、安装docker

更新yml包索引
yml makecache fast

官方默认安装
sudo yum install docker-ce docker-ce-cli containerd.io
指定版本
sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
sudo yum install <FQPN>  # 例如:sudo yum install docker-ce-17.12.0.ce

启动docker

# systemctl start docker

查看docker版本 

# docker version

Client: Docker Engine - Community
 Version:           19.03.8
 API version:       1.40
 Go version:        go1.12.17
 Git commit:        afacb8b
 Built:             Wed Mar 11 01:27:04 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.8
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.17
  Git commit:       afacb8b
  Built:            Wed Mar 11 01:25:42 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

运行helloworld镜像

# docker run hello-world

-----------------结果-------------
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete 
Digest: sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

查看镜像

[root@iZ8vb409m8717pj5m22ll3Z ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              bf756fb1ae65        4 months ago        13.3kB

删除镜像

  1. Uninstall the Docker Engine, CLI, and Containerd packages: 卸载docker引擎

    $ sudo yum remove docker-ce docker-ce-cli containerd.io
    
  2. Images, containers, volumes, or customized configuration files on your host are not automatically removed. To delete all images, containers, and volumes: 删除资源

    $ sudo rm -rf /var/lib/docker
    

You must delete any edited configuration files manually.

配置阿里加速

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

命令

帮助命令

docker    version                                显示版本信息

docker    info                                      显示详细系统信息

docker    命令   --help   

镜像命令

 

docker  images               查看本地所有镜像

-a  --all       列出所有                                               -q --quiet    只显示镜像id

 

docker   search  镜像名称

--filter =列名 = 条件                                 搜索列名至少达到指定条件的镜像

 

docker pull  镜像名 [: tag]

docker pull mysql : 5.7

默认下拉latest     分层下载 ,联合文件系统 (可以共用公共部分)

 

docker rmi -f 镜像id

docker rmi -f 镜像id 镜像id ... ...

docker rmi -f $(docker images -aq)  删除全部容器

 

容器命令

docker run [可选参数] image                                                                       测试:docker run -it centos /bin/bash

--name 容器名 用于区分容器

-d  后台方式运行

-it 使用交互方式运行,进入容器查看内容

-p  指定容器端口   

        -p  ip :主机端口:容器端口   

        -p 主机端口:容器端口(常用)   

        -p 容器端口

-P   随机端口

 

exit   停止容器退回主机                                  ctrl + P + Q        不停止容器退出

 

docker  ps     列出当前正在运行的容器

-a          列出正在运行的容器和历史运行过的容器                          -n = ?  显示最近创建的容器

docker  start   容器id       

docker  restart  容器id

docker stop  容器id 

docker kill  容器id

 

练习

安装运行nginx

  1. docker  pull nginx                                                                              拉取nginx镜像
  2. docker run -d --name nginx01 -p 3344 : 80 nginx                             运行容器
  3. docker ps                                                                                          查看运行容器
  4. curl  localhost:3344                                                                           测试
  5. docker  exec  -it  nginx01 /bin/bash                                                  进入容器
  6. whereis nginx                                                                                   在容器内查看nginx位置
  7.  cd   /etc/nginx                             进入目录

安装运行tomcat

  1. docker pull tomcat                                                                                                       拉取tomcat
  2. docker  run  -it  --rm tomcat:9.0                                          运行完就删
  3. docker  exec  -it  tomcat01   /bin/bash                                                  进入容器
  4. 运行起来发现会报404   原因是webapps是空的 ;在webapps.dist下存在 ,可以复制到webapps下可以正常显示tomcat

安装ES

 

小结

选项说明
attach进入运行中的容器, 显示该容器的控制台界面。注意, 从该指令退出会导致容器关闭
build根据 Dockerfile 文件构建镜像
commit提交容器所做的改为为一个新的镜像
cp在容器和宿主机之间复制文件
create根据镜像生成一个新的容器
diff展示容器相对于构建它的镜像内容所做的改变
events实时打印服务端执行的事件
exec在已运行的容器中执行命令
export导出容器到本地快照文件
history显示镜像每层的变更内容
images列出本地所有镜像
import导入本地容器快照文件为镜像
info显示 Docker 详细的系统信息
inspect查看容器或镜像的配置信息, 默认为json数据
kill-s 选项向容器发送信号, 默认为SIGKILL信号(强制关闭)
load导入镜像压缩包
login登录第三方仓库
logout退出第三方仓库
logs打印容器的控制台输出内容
pause暂停容器
port容器端口映射列表
ps列出正在运行的容器, -a 选项显示所有容器
pull从镜像仓库拉取镜像
push将镜像推送到镜像仓库
rename重命名容器名
restart重启容器
rm删除已停止的容器, -f 选项可强制删除正在运行的容器
rmi删除镜像(必须先删除该镜像构建的所有容器)
run根据镜像生成并进入一个新的容器
save打包本地镜像, 使用压缩包来完成迁移
search查找镜像
start启动关闭的容器
stats显示容器对资源的使用情况(内存、CPU、磁盘等)
stop关闭正在运行的容器
tag修改镜像tag
top显示容器中正在运行的进程(相当于容器内执行 ps -ef 命令)
unpause恢复暂停的容器
update更新容器的硬件资源限制(内存、CPU等)
version显示docker客户端和服务端版本信息
wait阻塞当前命令直到对应的容器被关闭, 容器关闭后打印结束代码
daemon这个子命令已过期, 将在Docker 17.12之后的版本中移出, 直接使用dockerd

 

可视化

Commit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值