测试环境
Ubuntu 20.04
对docker内部的https网络协议的支持
sudo apt-get install apt-transport-https ca-certificates software-properties-common curl
若出现报错请尝试一下两行命令,未出现则跳过下面这两行
sudo apt-get install libcurl3-gnutls=7.47.0-1ubuntu2
sudo apt-get update && sudo apt-get install curl
添加docker-ce 软件源到Ubuntu系统中
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce
sudo service docker start
输入命令后无报错则成功
sudo docker run hello-world
sudo gpasswd -a ${USER} docker
添加纯净的Ubuntu镜像
sudo docker pull ubuntu
# 查看镜像
sudo docker images
cd /usr/local
sudo mkdir dockerbuild
sudo docker run -it -v /usr/local/dockerbuild:/root/build/ --name pc1 ubuntu
如上图所示,已经进入了刚创建的容器内部,该容器没有图形化界面,不过可以在终端里进行一系列操作,比如搭建集群
root@d6e5d1720bdd 其中@后的内容
d65e5d1720bdd
为容器的ID
关于 docker run [Options] image [Command] [arg...]
命令的参数说明
参考资料:https://www.runoob.com/docker/docker-run-command.html
参数 | 说明 |
---|---|
-a stdin | 指定标准输入输出内容的类型,可选stdin,stdout,stderr |
-d | 后台运行容器,并返回容器的ID |
-i | 以交互模式运行,通常与-t同时使用 |
-P | 随机端口映射,容器内部端口随机映射到主机的端口 |
-p | 指定端口映射,格式为:`主机(宿主)端口:容器端口 |
-t | 为容器重新分配一个伪输入终端,通常与-i同时使用 |
–name=“xxx” | 为容器指定一个名称 |
–dns 8.8.8.8 | 指定容器使用的DNS服务器,默认和宿主一致 |
–dns-search example.com | 指定容器DNS搜索域名,默认和宿主一致 |
-h “mars” | 指定容器的hostname |
-e username = “ritchie” | 设置环境变量 |
-env-file=[] | 从指定文件读入环境变量 |
–cpuset=“0-2” or --cpuset=“0,1,2” | 绑定容器到指定CPU运行 |
-m | 设置容器使用内存的最大值 |
-net=“bridge” | 指定容器的网络连接类型,支持bridge/host/none/container四种类型 |
–link=[] | 添加链接到另一个容器 |
–expose=[] | 开放一个端口或一组端口 |
–volume, -v | 绑定一个卷 |
注:以下命令需要区分是在容器内部还是外部
参考资料:https://www.runoob.com/docker/docker-command-manual.html
查看所有镜像
sudo docker images
查看正在运行的容器
sudo docker ps
查看所有的容器
sudo docker ps -a
退出容器
重启容器 (成功后会显示一次容器ID)
# 先查询之前容器的ID
sudo docker ps -a
sudo docker restart d6e5d1720bdd
进入容器 (进入前确保容器已经启动)
sudo docker exec -it d6e5d1720bdd /bin/bash
通过上图可知,exec启动的容器,就算在内部用exit命令退出,它仍能在后台运行。
停止容器
sudo docker stop d6e5d1720bdd
注:以上命令的容器ID均可用容器的name代替,如下图所示
删除镜像
docker rii 镜像id
删除容器
docker rm 容器id
关闭容器后
导出容器为tar文件(不会保留历史记录)
docker export 容器Id xxx.tar
导入容器文件为镜像(可重命名)
docker import xxx.tar images_name:images_tag
导出镜像为tar文件(会保留镜像所有历史记录)
docker save -o xxx.tar images_name:images_tag
导入镜像(无法重命名)
docker load < xxx.tar
docker commit [Option] $id $image_name
Option参数说明
-a: 提交的镜像作者
-c: 使用Dockerfile指令来创建镜像
-m: 提交时的说明文字
-p: 在commit时,将容器暂停