目录
安装ubuntu
基本使用命令
docker run 容器名 延伸命令
启动ubuntu
查看所有正在运行的容器
指定容器别名启动
doker ps 延伸命令
退出容器
重新进入正在运行的容器
启动容器
删除已停止的容器
强制删除容器
查看容器日志
查看容器内部运行的进程
编辑 查看容器内部细节
导出导入容器
导出编辑
导入编辑
上传容器镜像到仓库
commit容器
安装vim
提交容器
上传阿里云容器镜像仓库
拉取
拉取阿里云容器镜像
上传私有仓库
安装ifconfig的ubuntu并推送到私服
推送镜像到私服
拉取私服镜像
容器卷
安装ubuntu
本篇文章以ubuntu系统镜像为测试
基本使用命令
docker run 容器名 延伸命令
启动ubuntu
平常如果直接启动ubuntu的话是docker run ubuntu,但是ubuntu是一种类似于centos的系统,所以需要暴露出终端让我们进一步的输入命令,所以此时就需要我们以交互式地启动ubuntu
docker run -it ubuntu bash
或者docker run -it ubuntu /bin/bash
查看所有正在运行的容器
docker ps
注意此时我们处在ubuntu的系统中,所以需要另外开一个窗口然后输入docker命令进行查看
此时我们启动ubuntu时没有指定容器名字,所以docker会随机飞机分配一个名字给容器
指定容器别名启动
docker run -it --name=名字 ubuntu /bin/bash
再开一个连接窗口进行查看
可以看到第一个容器的名字就已经是我们刚才指定的名字了
如果有哪些命令忘记还可以查看docker命令帮助
docker run --help
只不过命令说明都是英文,对英文不太好的小伙伴(指自己)不太友好o(╥﹏╥)o
doker ps 延伸命令
退出容器
可以看到退出后再使用docker ps命令后随机名字的ubuntu的容器已经停止
在自定义名字容器的连接窗口里输入快捷键退出后再使用docker ps发现自定义的ubuntu容器并没有停止
重新进入正在运行的容器
docker exec -it 容器id /bin/bash
或者
docker exec -it 容器id bash
启动容器
docker start 容器id
删除已停止的容器
docker rm 容器id
注意该命令是删除 已停止的容器
所以如果要删除该容器的话需要先将该容器停止
docker stop 容器id
强制删除容器
如果想要删除正在运行的容器的话需要再命令行中加 -f命令
docker rm -f 容器id
拓展 不建议使用 可能会误删容器
后台启动容器 ,这里以redis容器作为演示
首先拉取redis容器
查看容器日志
docker logs 容器id
查看容器内部运行的进程
docker top 容器id
查看容器内部细节
docker inspect 容器id
从容器内复制文件到主机
导出导入容器
导出
导入
拓展知识
上传容器镜像到仓库
commit容器
我们在拉取容器后,有些容器可能不包含我们需要的一些功能,这时我们可以对该容器下载一些我们需要的功能后将容器进行commit
首先先更新我们的容器包管理器
apt-get update
安装vim
apt-get -y install vim
测试vim命令是否可以使用
输入 vim ab.txt进入文本编辑
编辑文本
退出
保存并退出:在 Vim 编辑器中,输入 :wq 命令可以保存当前文件并退出,具体操作步骤是:
a.按下 Esc 键进入普通模式。
b.输入 :wq 并按下回车键即可保存并退出。
提交容器
docker commit -m="描述" -a="作者" 容器di 目标镜像名:标签名
上传阿里云容器镜像仓库
将刚刚提交的容器镜像上传到阿里云镜像仓库里
登录阿里云进入到控制台中
为了方便演示这里创建一个公开的仓库
进入仓库获取执行脚本
依次执行推送脚本即可
拉取
再将刚才推送成功的镜像拉取下来
为了避免混淆,先将本地里的镜像删掉
拉取阿里云容器镜像
测试使用
上传私有仓库
拉取一个私有仓库
docker pull registry
执行配置私服命令
默认情况下 仓库被创建在容器的/var/lib/registry目录下 建议自行用容器卷映射 方便于宿主机联调
docker run -d -p 5000:5000 -v /wutian/myregistry/:/tmp/registry --privileged=true registry
安装ifconfig的ubuntu并推送到私服
执行下面两条命令
apt-get update
apt-get install net-tools
执行后再次执行ifconfig查看效果
跳出docker容器再commit安装ifconfig后的容器
查看提交的镜像
查看私服仓库中的镜像列表
ifconfig | grep 'inet '
curl -XGET http://域名ip地址:5000/v2/_catalog
查看后发现当前私服中没有任何镜像
修改刚才提交的镜像为私服要求的镜像格式
公式
docker tag 镜像名:标签 Host:Port/Repository:标签
docker默认是不允许http方式推送镜像的,需要修改配置使docker允许http方式推送镜像
查看配置文件
cat /etc/docker/daemon.json
修改后 注意ip地址改成自己的
{
"registry-mirrors": ["https://panyr5rh.mirror.aliyuncs.com"],
"insecure-registries":["172.17.4.142:5000"]
}
有的可能修改后没有起作用,可以重启docker
systemctl restart docker
再启动私服仓库
推送镜像到私服
docker push 172.17.4.142:5000/fig_ub:1.2
再次查看私服仓库
拉取私服镜像
为了避免混淆先把本地的删除掉
拉取私服镜像
拉取成功
测试
容器卷
将运用与运行的环境打包镜像 run后形成容器实例运行 可以使得数据持久化
通俗的说就是把容器内的的文件数据和宿主机进行同步持久化
演示:
docker run -it --privileged=true -v /tmp/host_data:/tmp/docker_data --name=u1 ubuntu
注意配置中的文件目录如果不存在docker会自动创建
在宿主机中修改这个文件,然后回到容器内观察文件内容有无同步
回到容器中查看
查看容器卷是否挂载成功
用之前的查看容器内部详情命令
往下翻看详情