Docker的安装及基本操作
docker环境准备
1.下载阿里源和扩展源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2.下载docker需要的依赖
yum install -y yum-utils device-mapper-persistent-data lvm2 #docker的依赖
3.添加aliyum的docker源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #添加阿里docker源
4.清除旧缓存,建立新缓存
yum clean all #清理旧缓存
yum makecache #生成新缓存
docker安装
1.查看系统支持的docker版本
yum list docker-ce --showduplicates | sort -r #列出所有的docker版本
2.选择稳定版本 --3:18.09.9-3.el7
yum install -y docker-ce-18.09.9 docker-ce-cli-18.09.9 #安装docker
3.启动docker
systemctl start docker #启动docker
systemctl enable docker #设置开机自启
4.查看docker是否正常启动
Client端和Sever端都正常启动,表示docker启动正常,否则失败
Client:
Version: 18.09.9 #服务端正常启动
API version: 1.39
Go version: go1.11.13
Git commit: 039a7df9ba
Built: Wed Sep 4 16:51:21 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.9 #客户端正常启动
API version: 1.39 (minimum version 1.12)
Go version: go1.11.13
Git commit: 039a7df
Built: Wed Sep 4 16:22:32 2019
OS/Arch: linux/amd64
Experimental: false
5.配置docker镜像加入
登录你的阿里云账号—>搜索容器镜像服务—>镜像加速器
创建加速器文件
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://ebqussbu.mirror.aliyuncs.com"] #镜像加速
}
6.重新加载docker
systemctl daemon-reload
systemctl restart docker
Docker镜像的基本操作
镜像的查找
docker search nginx #查找nginx镜像
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
#镜像名称 #镜像的描述 #对镜像的评分 #是否是官方的
nginx Official build of Nginx. 14228 [OK]
拉取镜像到本地
从镜像仓库拉取镜像到本地保存
docker pull nginx #拉取nginx镜像到本地 ##########拉取的版本默认是最新版本#############
Using default tag: latest
latest: Pulling from library/nginx #配置镜像加速以后下载会很快
6ec7b7d162b2: Pull complete
cb420a90068e: Pull complete
2766c0bf2b07: Pull complete
e05167b6a99d: Pull complete
70ac9d795e79: Pull complete
Digest: sha256:4cf620a5c81390ee209398ecc18e5fb9dd0f5155cd82adcbae532fec94006fb9 #镜像的地址是一个哈希值
Status: Downloaded newer image for nginx:latest
拉取指定的镜像版本
docker pull ubuntu:18.04 #指定Ubuntu的版本,在镜像的名称后加上:指定版本号,下载指定的镜像
18.04: Pulling from library/ubuntu
f22ccc0b8772: Pull complete
3cf8fb62ba5f: Pull complete
e80c964ece6a: Pull complete
Digest: sha256:fd25e706f3dea2a5ff705dbc3353cf37f08307798f3e360a13e9385840f73fb3
Status: Downloaded newer image for ubuntu:18.04 #下载的指定的版本
查看下载到本地的镜像列表
docker images #查看下载到本地的镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
#仓库 #版本 #下载镜像的ID #创建的时间 #镜像大小
nginx latest ae2feff98a0c 2 weeks ago 133MB
ubuntu 18.04 2c047404e52d 5 weeks ago 63.3MB
删除镜像
删除镜像可以使用镜像的ID号、名称、名称:TAG值(当ID和名称相同的时候使用TAG值)
docker rmi ae2feff98a0c #删除镜像可以指定镜像的ID或者名称,每个镜像的ID是唯一的,但是名称不是,建议使用ID删除
Untagged: nginx:latest #这里删除的是Nginx的镜像
Untagged: nginx@sha256:4cf620a5c81390ee209398ecc18e5fb9dd0f5155cd82adcbae532fec94006fb9
Deleted: sha256:ae2feff98a0cc5095d97c6c283dcd33090770c76d63877caa99aefbbe4343bdd
Deleted: sha256:782ae030602867e568a53a99643844e8b06702a851c4b0a09c817deae2520b28
Deleted: sha256:8b5b86a154fd4e4098f3f55cd5b71204560cef2e9f50e18e84ada5cb8fb3ae03
Deleted: sha256:528e7c6bece2def770f60aa8722648031a17de5e2df10e776acf955ef8ec90d0
Deleted: sha256:ffb8d6c7eb6938709ca6d1f39f58971ccc5f10372ec3e37e72c7cbc065bbfb57
Deleted: sha256:87c8a1d8f54f3aa4e05569e8919397b65056aa71cdf48b7f061432c98475eee9
docker rmi ubuntu:18.04 #使用镜像的名称:版本,这种方式删除镜像
Untagged: ubuntu:18.04
Untagged: ubuntu@sha256:fd25e706f3dea2a5ff705dbc3353cf37f08307798f3e360a13e9385840f73fb3
Deleted: sha256:2c047404e52d7f17bdac4121a13cd844447b74e13063f8cb8f8b314467feed06
Deleted: sha256:9459b6a89846db0723e467610b841e6833dbb2aae6133319a91f2f70c388afac
Deleted: sha256:9a9311f7fcddf94f7476ce89f9703e8360e8cf347ef486a280735f5cf98888cd
Deleted: sha256:b43408d5f11b7b2faf048ae4eb25c296536c571fb2f937b4f1c3883386e93d64
标记镜像
docker tag ubuntu aliyun/ubuntu:v1 #将ubuntu的TAG标记为v1
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aliyun/ubuntu v1 f643c72bc252 5 weeks ago 72.9MB
ubuntu latest f643c72bc252 5 weeks ago 72.9MB
#发现v1的ID和latest的ID相同,这时删除镜像的时候就需要使用 名称:tag 来删除了
登录镜像仓库和退出镜像仓储
这里的账户是需要到docker的官网注册的,这里使用的DockerHup的账户是:18336607017
登录镜像仓库
docker login #登录镜像仓库
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: 18336607017
Password: #输入密码以后就会登录到镜像仓库
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded #登录成功
退出镜像仓库
docker logout #退出登录
Removing login credentials for https://index.docker.io/v1/
推送镜像到DockerHup
你使用账户登录到镜像仓库以后,可以向本地推送镜像
也可以向DockerHup推送镜像
docker push #私有仓库的时候使用,从DockerHup向本地推送镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest ae2feff98a0c 2 weeks ago 133MB
aliyun/ubuntu v1 f643c72bc252 5 weeks ago 72.9MB
ubuntu latest f643c72bc252 5 weeks ago 72.9MB
ubuntu 18.04 2c047404e52d 5 weeks ago 63.3MB
docker tag ae2feff98a0c 18336607017/nginx:v1 #需要注意的是,在向仓库推送镜像之前,是需要先标记镜像的,这里使用的是ID标记的
docker push 18336607017/nginx:v1 #将已经标记好的Nginx镜像推送到了DockerHuo仓库中
The push refers to repository [docker.io/18333607017/nginx]
4eaf0ea085df: Mounted from library/nginx
2c7498eef94a: Mounted from library/nginx
7d2b207c2679: Mounted from library/nginx
5c4e5adc71a8: Mounted from library/nginx
87c8a1d8f54f: Mounted from library/nginx
v1: digest: sha256:13e4551010728646aa7e1b1ac5313e04cf75d051fa441396832fcd6d600b5e71 size: 1362
推送到DockerHup仓库以后,登录仓库进行验证
查看镜像的详细信息
docker inspect ae2feff98a0c #使用的是镜像的ID,查看镜像的详细信息,可以用到镜像,也可以用到容器
[
{
"Id": "sha256:ae2feff98a0cc5095d97c6c283dcd33090770c76d63877caa99aefbbe4343bdd",
"RepoTags": [
"18333607017/nginx:v1",
"nginx:latest"
...............
镜像的导入和导出
从docker中将镜像导出来,可以很方便的对镜像进行传输,也可以将外部镜像导入到docker中
镜像导出
docker save -o nginx.tar ae2feff98a0c #将镜像导出为nginx.tar,这里使用的是镜像的ID号,参数-o表示将镜像打包成什么
ll #查看打包的镜像文件
total 133924
-rw------- 1 root root 137134592 Jan 1 13:08 nginx.tar
镜像导入
方式一:
docker load -i nginx.tar #将nginx.tar这个包中的镜像导入到docker中
87c8a1d8f54f: Loading layer 72.5MB/72.5MB
5c4e5adc71a8: Loading layer 64.6MB/64.6MB
7d2b207c2679: Loading layer 3.072kB/3.072kB
2c7498eef94a: Loading layer 4.096kB/4.096kB
4eaf0ea085df: Loading layer 3.584kB/3.584kB
Loaded image ID: sha256:ae2feff98a0cc5095d97c6c283dcd33090770c76d63877caa99aefbbe4343bdd
方式二:
[root@master ~]# docker load < nginx.tar #通过输入重定向的方式将镜像导入到docker中
87c8a1d8f54f: Loading layer 72.5MB/72.5MB
5c4e5adc71a8: Loading layer 64.6MB/64.6MB
7d2b207c2679: Loading layer 3.072kB/3.072kB
2c7498eef94a: Loading layer 4.096kB/4.096kB
4eaf0ea085df: Loading layer 3.584kB/3.584kB
Loaded image ID: sha256:ae2feff98a0cc5095d97c6c283dcd33090770c76d63877caa99aefbbe4343bdd