docker使用笔记-linux平台

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30549833/article/details/85046767

一、环境准备

1、ubuntu 版本
Linux ubuntu 4.4.0-31-generic #50~14.04.1

二、安装

1、安装1.9版本

1)执行以下指令

sudo apt-get install apt-transport-https 
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 
sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list" 
sudo apt-get update 
sudo apt-get install lxc-docker

2)检查安装
使用下面指令检查是否安装成功

docker -v

在这里插入图片描述

三、使用

1、查看ubuntu镜像

docker search ubuntu

该命令将显示所有 ubuntu images,你可以自己尝试一下搜索 centos Images。
在这里插入图片描述
2、拉去官方原版ubuntu系统
使用下面命令拉去官方的原版ubuntu系统镜像,已经开始下载,如下图。

docker pull ubuntu

在这里插入图片描述
完成下载。
在这里插入图片描述

使用命令 查看已经下载 的所有的images:

 docker images

在这里插入图片描述

3、创建容器
使用命令

docker create ubuntu:14.04

或者

docker run -i -t ubuntu:14.04 /bin/bash

创建一个名字叫做 ubuntu:14.04 的新容器。其中,create只创建不启动,run创建并启动容器。
运行 create 命令时在本地未发现ubuntu:14.04的版本,因此重新拉去了一个标签为ubuntu:14.04的镜像,如下图:

拉去的ubuntu14.04的镜像
拉去新的ubuntu镜像
已经下载的所有镜像
已经下载的镜像
已经存在镜像时如下图
在这里插入图片描述

4、运行容器
1)后台带参数运行

docker run -it -d --name ubuntu:14.04-p 8088:80 ubuntu

-d参数为后台运行,–name参数为自定义容器名,-p参数为指定端口映射、后者为容器的端口。注意到成功后台运行后会返回一个容易的id,在这里只需要记住前两位即88即可

2)直接运行

docker run -i -t ubuntu:14.04 /bin/bash

或者

 docker exec -i -t NAMES/ContainerID

执行后进入该容器的bash命令行,用另一个shell查看当前的images状态发现该容器已经处于运行状态。
在这里插入图片描述
在这里插入图片描述
用命令 cat /etc/issue 查看容器内的ubuntu版本。
在这里插入图片描述

在容器内我们可以做很多的操作,和普通的linux系统操作并无差别。比如安装vim和修改为阿里源。
安装vim:

apt-get update
apt-get install vim

更换阿里源

cp sources.list sources.list.bak
echo ''>sources.list
vi sources.list

复制以下内容到source.lis中

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

5、退出容器

1)退出容器:exit,查看容器的运行状态。
在这里插入图片描述
在这里插入图片描述
2)停止容器:docker stop dreamy_pike 或者 docker stop 85785945b3e4 或者 docker stop 85
第一个是容器的名字,后两个是容器的id,其中id只使用前两位也可以停止容器,启动时同理。

6、重启容器

docker restart 容器名/容器id

使用 docker restart 85785945b3e4重启已经存在的容器。
在这里插入图片描述
在这里插入图片描述

7、访问已启动容器的

1)在容器启动的情况下,执行docker attach 容器id 即可进入容器,但执行exit时容器就停止了。
在这里插入图片描述

2)执行 docker exec -it containerID /bin/bash 进入容器,执行命令exit退出时,容器还在运行。
在这里插入图片描述
容器未退出
在这里插入图片描述

8、删除容器
在操作过程中无意创建了一个新的容器,我们使用命令 docker rm 63030b5aa9ba 将其删除,docker rm NAME/ContainerID
在这里插入图片描述

中间遇到几个问题,当经过别的操作的后有时候会发现imageid有重复的:
在这里插入图片描述
此时,使用一般的删除方式 docker rm ca27a58388df 是删除不掉的,会报错,说找不到相应的id:
在这里插入图片描述
原因是,有关联docker容器,无法删除,需要强制删除才可以,使用命令 docker rmi -f ca27a58388df 可以删除:
在这里插入图片描述
9、其他

1)从宿主拷贝文件到容器docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 如,拷贝宿主/目录下kafka_2.11-2.1.0/目录到容器名为dreamy_pike的容器的/目录下,命令:

docker cp kafka_2.11-2.1.0/ dreamy_pike:/

在这里插入图片描述
在这里插入图片描述
2)从容器拷贝文件到宿主docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径
3)查看容器信息docker inspect id
4)查看docker状态docker stats id
5)容器的开机自启动docker run -it --restart=always ubuntu
6)查看容器logdocker logs -f -t --tail=5 ubuntu

四、发布容器

1、制作docker镜像

docker commit 85785945b3e4 ubuntu_aliyun:1.0

冒号后面的1.0为版本号,要添加的,就像在前面查看镜像images时的TAG
在这里插入图片描述
制作完成后用命令 docker images 查看已经制作的镜像,
在这里插入图片描述

2、打包镜像
虽然制作了镜像,但是只能在宿主机使用而不能在其他机器上使用,这时需要打包镜像,将镜像文件打包为tar包,发给别的机器再使用。

docker save -o ubuntu_aliyun.tar ubuntu_aliyun:1.0

在这里插入图片描述

3、本地镜像推送到docker Hub

1)账户登录
若没有账户的,在 此处 注册docker hub账户,然后使用命令 docker login 登录docker hub.
在这里插入图片描述

2)修改镜像
修改已经生成的镜像文件为规范的命名格式,推送镜像的规范是:
docker push 注册用户名/镜像名
修改的命令:
docker tag 目前的名字 规范的名称

未修改前的images在这里插入图片描述
修改之后的images
在这里插入图片描述
发现一个问题,文档上说docker tag是重命名的指令,但是操作之后发现似乎是重新多了一份???

3)推送到docker hub
使用命令 docker push 镜像名:latest,推送测试的镜像到docker hub.

docker push luciferofwg/ubuntu_aliyun:latest

开始推送
在这里插入图片描述
似乎除了问题
在这里插入图片描述
经过查看,应该是与docker hub的链接不稳定导致的,重新推送成功了。
在这里插入图片描述
推送成功之后,在docker hub上自己的主页上查看推送的结果,已经成功。这个镜像即可pull下来在别的地方使用。
在这里插入图片描述

至此,就是在学习使用docker的过程中记录的一些问题和笔记,多数资料来自与互联网。

猜你喜欢

转载自blog.csdn.net/qq_30549833/article/details/85046767