参考1: https://yq.aliyun.com/articles/110806?spm=a2c4e.11153959.blogcont29941.13.699e6d2fGhh685
参考2:http://www.runoob.com/docker/docker-tutorial.html
1、安装
Docker CE 镜像源站
使用官方安装脚本自动安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
手动安装帮助 Ubuntu 18.04
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
# docker-ce | 17.03.1~ce-0~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# docker-ce | 17.03.0~ce-0~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]
2、使用非root用户
sudo groupadd docker
sudo gpasswd -a xu docker # 此处“xu”为你电脑的用户名
然后注销或者重启
3、修改Docker默认镜像和容器的存储位置
http://www.cnblogs.com/bigberg/p/8057807.html
Docker默认的镜像和容器存储位置在/var/lib/docker中
1、修改docker.service文件
cd /etc/systemd/system/multi-user.target.wants
vim docker.service
ExecStart=/usr/bin/dockerd --graph=/home/xu/docker --storage-driver=overlay --registry-mirror=https://jxus37ad.mirror.aliyuncs.com
- –graph=/data/docker:docker新的存储位置
- –storage-driver=overlay : 当前docker所使用的存储驱动
2、重启docker
systemctl daemon-reload
systemctl restart docker
# docker info
4、启动、重启、关闭命令
功能 | shell命令 |
---|---|
启动 | systemctl start docker |
守护进程重启 | sudo systemctl daemon-reload |
重启docker服务 | systemctl restart docker |
重启docker服务 | sudo service docker restart |
关闭docker | service docker stop |
关闭docker | systemctl stop docker |
5、docker容器使用
容器 | shell 命令 |
---|---|
列出镜像列表 | docker images |
查看正在运行的容器 | docker ps |
查看容器内部的标准输出 | docker logs [CONTAINER ID / NAMES] |
查看容器内部运行的进程 | docker top [CONTAINER ID / NAMES] |
停止应用容器 | docker stop [CONTAINER ID / NAMES] |
重启应用容器 | docker start [CONTAINER ID / NAMES] |
删除不需要的容器 | docker rm [CONTAINER ID / NAMES] |
设置网络端口 | eg: docker run -d -p 5000:5000 training/webapp python app.py |
注意:删除容器时,容器必须是停止状态
6、docker镜像使用
镜像 | shell 命令 |
---|---|
列出本地主机上的镜像 | docker images |
获取一个新的镜像 | docker pull [images_name] |
查找镜像 | docker search [images_name] |
运行镜像 | docker run [images_name] |
当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。
1.从已经创建的容器中更新镜像,并且提交这个镜像
2.使用 Dockerfile 指令来创建一个新的镜像
1.更新镜像,并且提交镜像 | shell命令 |
---|---|
1.1 使用镜像来创建一个容器 | eg: docker run -t -i ubuntu:15.10 /bin/bash |
1.2 在运行的容器内进行更新 | apt-get update |
1.3 退出容器 | exit |
1.4 提交容器副本 | eg: docker commit -m=“has update” -a=“runoob” e218edb10161 runoob/ubuntu:v2 |
-m:提交的描述信息 -a:指定镜像作者 | |
e218edb10161:容器ID | |
runoob/ubuntu:v2:指定要创建的目标镜像名 | |
1.5 使用新镜像启动容器 | eg: docker run -t -i runoob/ubuntu:v2 /bin/bash |
2.创建镜像 | shell命令 |
---|---|
创建一个 Dockerfile 文件 | cat Dockerfile |
使用命令 docker build | docker build -t runoob/centos:6.7 . |
-t :指定要创建的目标镜像名 | |
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径 |
设置镜像标签 | shell命令 |
---|---|
为镜像添加一个新的标签 | eg: docker tag 860c279d2fec runoob/centos:dev |
docker tag 镜像ID,这里是 860c279d2fec ,用户名称、镜像源名(repository name)和新的标签名(tag)。 | |
docker | docker |
docker | docker |
docker | docker |
7、docker容器连接
通过端口连接到一个docker容器网络端口映射
网络端口映射
创建一个python应用程序,可以指定容器绑定的网络地址。
-P :是容器内部端口随机映射到主机的高端口
docker run -d -P training/webapp python app.py
-p : 是容器内部端口绑定到指定的主机端口
docker run -d -p 5000:5000 training/webapp python app.py
指定容器绑定的网络地址
docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py
,这样就可以通过访问127.0.0.1:5001来访问容器的5000端口。
默认都是绑定 tcp 端口,如果要绑定 UDP 端口,可以在端口后面加上 /udp
docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
Docker容器连接
端口映射并不是唯一把 docker 连接到另一个容器的方法。docker有一个连接系统允许将多个容器连接在一起,共享连接信息。docker连接会创建一个父子关系,其中父容器可以看到子容器的信息。
容器命名:
当我们创建一个容器的时候,docker会自动对它进行命名。另外,我们也可以使用–name标识来命名容器。
docker run -d -P --name runoob training/webapp python app.py