找了好多教程都是直接yum in docker
但是我本地的虚拟机是OpenSuSe11.3 很老的版本了 死活安装不下来 添加了无数个镜像仓库,最后终于找到了一个 可以用的
1 将docker源添加到SUSE 的zypper源中
zypper ar -t YUM https://packages.docker.com/1.13/yum/repo/main/opensuse/12.3 docker-1.13
rpm --import 'https://sks-keyservers.net/pks/lookup?op=get&search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e'
# 如果以上源添加失败,可尝试以下源
keyserver.ubuntu.com
2 安装最新版Commercially supported Docker Engine (不知道什么野鸡版本的)
zypper refresh
zypper install docker-engine
3 安装特定版本Dcoker
zypper search -s --match-exact -t package docker-engine
1 设置开机自动启动systemctl enable docker.service
2 现在启动服务systemctl start docker.service
docker info
docker ps
docker run hello-world
如果yum 或者zypper 包管理工具不好用 也可以直接下载离线版的进行下载
下载地址 https://download.docker.com/
找到对应的版本下载,我这里选择的是centos7
https://download.docker.com/l...
wget https://download.docker.com/linux/static/stable/x86_64/docker-17.03.0-ce.tgz
# 解压
tar -zxvf docker-17.03.0-ce.tgz
# 将解压出来的docker文件复制到 /usr/bin/ 目录下
cp docker/* /usr/bin/
在/etc/systemd/system/目录下新增docker.service文件,内容如下,这样可以将docker注册为service服务
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
给docker.service文件添加执行权限
chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl start docker
systemctl enable docker.service
查看docker 状态systemctl status docker
安装成功
4 Docker 常用命令
1.拉取镜像docker pull
2.删除容器docker rm <容器名 or ID>
3.查看容器日志docker logs -f <容器名 or ID>
4.查看正在运行的容器
docker ps
docker ps -a # 为查看所有的容器,包括已经停止的。
5.删除所有容器docker rm $(docker ps -a -q)
6.停止、启动、杀死指定容器
docker start <容器名 or ID> # 启动容器
docker stop <容器名 or ID> # 启动容器
docker kill <容器名 or ID> # 杀死容器
7.查看所有镜像docker images
8.拉取镜像docker pull <镜像名:tag>
例如以下代码docker pull sameersbn/redmine:latest
9.后台运行docker run -d <Other Parameters>
例如
docker run -d -p 127.0.0.1:33301:22 centos6-ssh
10.暴露端口
# 一共有三种形式进行端口映射
docker -p ip:hostPort:containerPort # 映射指定地址的主机端口到容器端口
# 例如:docker -p 127.0.0.1:3306:3306 映射本机3306端口到容器的3306端口
docker -p ip::containerPort # 映射指定地址的任意可用端口到容器端口
# 例如:docker -p 127.0.0.1::3306 映射本机的随机可用端口到容器3306端口
docer -p hostPort:containerPort # 映射本机的指定端口到容器的指定端口
# 例如:docker -p 3306:3306 # 映射本机的3306端口到容器的3306端口
11.映射数据卷
docker -v /home/data:/opt/data # 这里/home/data 指的是宿主机的目录地址,后者则是容器的目录地址
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。