1

找了好多教程都是直接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

image.png

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

image.png

docker ps

image.png

docker run hello-world
image.png

如果yum 或者zypper 包管理工具不好用 也可以直接下载离线版的进行下载

下载地址 https://download.docker.com/

找到对应的版本下载,我这里选择的是centos7
image.png

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
image.png

安装成功

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 指的是宿主机的目录地址,后者则是容器的目录地址

docker
670 声望53 粉丝

十三学得java成,名属company第一部