Docker基础使用
本文使用的运行环境
Ubuntu 16.04.5 LTS
全新安装Docker
参考:https://docs.docker.com/install/linux/docker-ce/ubuntu/
安装依赖包
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
添加Docker的官方GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
设置stable仓库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
安装Docker
sudo apt-get update
sudo apt-get install docker-ce
测试是否可用
sudo docker run hello-world
配置用户组
安装过程已经自动添加了docker组,执行docker run等命令需要root权限,普通用户需要加入docker组才能在普通权限下执行docker。添加方法如下:
sudo usermod -aG docker $USER
然后重新登录当前账户。
配置容器使用桥接网络(macvlan)
docker下面的bridge和传统VM的bridge不是一个东西,反而macvlan的bridge模式符合传统VM的桥接网络 这篇博文比较了传统VM和docker中的网络配置的异同(此bridge非彼bridge)链接
配置方案如下
Step1:创建macvaln网络
docker network create -d macvlan --subnet=10.8.8.0/24 --gateway=10.8.8.1 -o parent=enp0s3 macvlan_net
parent参数指定桥接使用的物理网卡,最后一个参数是给网络起的名字,可以改成其他的,子网和网关要符合物理网卡所在网域的环境。 注意:需要在宿主机中将物理网卡设置为混杂模式!!!
Step2:创建容器,并使用Step1创建的网络
docker run -tid --network macvlan_net --name test_container ubuntu:xenial
Step3:检查配置是否正确
docker container inspect test_container
Step4:attach 容器,开始使用
docker attach test_container
常用的一些操作
列出所有镜像
docker image ls
列出所有运行中的容器
docker container ls
docker ps
列出所有容器(含stopped)
docker container ls -a
查看镜像的历史(成长记录)
docker history 镜像名称/镜像hash
从镜像创建并启动一个容器
docker run -ti 镜像名称 //-t -i参数都要加上,不然无法正常使用tty
启动一个已经存在的容器
docker start -i 镜像名字/ID前缀
Attach一个正在运行的容器(docker ps 看到的容器)
#注意:敲完这个命令,什么显示都没有,要自己再敲一下Enter才能看到提示符
docker attach 镜像名字/ID前缀
从容器生成镜像(容器数据永久化的一种方式)
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
上传镜像到仓库中
docker longin //登陆,如果没有账号的话,去docker官网注册o
docker tag 镜像 username/repository:tag //tag可省略,缺省值为latest
docker push username/repository:tag //tag可省略,默认为本地全部tag
删除镜像
docker image rm username/repository:tag