文章目录

  • 一 docker安装及网络配置
  • 1.更换阿里下载源
  • Ubuntu
  • centos7
  • 2 docker安装
  • Ubuntu
  • centos7
  • 其他设置
  • 3 网络设置
  • 4 设置ssh连接
  • centos7
  • Ubuntu
  • 5 docker中执行systemctl命令
  • 二 常用命令


一 docker安装及网络配置

1.更换阿里下载源

Ubuntu

参考链接 1) 备份

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

2)修改配置文件

sudo vim /etc/apt/sources.list

将source.list文件内容替换成下面的

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

3)更新

sudo apt-get update
centos7

参考链接 1)备份

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2)下载

yum install -y wget
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

或者

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

3)更新

清除缓存:yum clean all
	生成缓存:yum makecache

2 docker安装

参考链接

Ubuntu
# 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 https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://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 | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
#   docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://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]
centos7
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start

#注意:其他注意事项在下面的注释中
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
#   将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1
## 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]
# 注意:在某些版本之后,docker-ce安装出现了其他依赖包,如果安装失败的话请关注错误信息。例如 docker-ce 17.03 之后,需要先安装 docker-ce-selinux。
# yum list docker-ce-selinux- --showduplicates | sort -r# sudo yum -y install docker-ce-selinux-[VERSION]
其他设置

1.启动以及关闭

启动docker
systemctl start docker
docker 开机自启
systemctl enbale docker
补充:
重启docker
systemctl restart docker
关闭docker服务
systemctl stop docker

2.设置阿里加速器 参考链接

打开文件 /etc/docker/daemon.json (如果没有就创建)

vim /etc/docker/daemon.json

添加下面内容 ,这个地址由阿里分配 关于加速器的地址,登录容器镜像服务控制台后,在左侧单击镜像加速器,就会显示为您独立分配的加速地址。

{
    "registry-mirrors": ["<your accelerate address>"] 
}

3 网络设置

参考链接 1.docker network ls //查看网络类型,初始为三种
2.新建一个网络类型
192.168.1.0/24:新网络网段,24是使用255.255.255.0的掩码
theworld :新网络名称 可以用 docker network ls 查看
em1:网卡名称 ifconfig查看

docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=em1  theworld

3.运行一个新网络类型的容器

docker run -itd --name=node-1 --net=theworld --ip=192.168.1.5 centos:centos7 /bin/bash

4.查看

内部
yum install -y net-tools.x86_64
ifconfig
外部
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' node-1   //node-1 是容器名字

4 设置ssh连接

centos7
进入容器
docker attach node-1
安装各种 net-tools,openssl,openssh
yum install -y net-tools
yum install -y openssl openssh-server

启动ssh

/usr/sbin/sshd -D

这里会报错

[root@68e7598797d7 /]# /usr/sbin/sshd -D
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key

进行下面的设置

ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''  
ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''

修改配置文件 /etc/ssh/sshd_conf 也可能文件名为sshd_config

# vim  /etc/ssh/sshd_conf
1.将 Port 22 前面的注释去掉(开启22号端口)
2.将  PermitRootLogin  的 no  改为 yes (这里是设置是否允许root用户登录,可根据自己需求决定是否开启) 
3.重启服务
/usr/sbin/sshd -D &  // & 后台运行
或
systemctl start sshd
4.设置开机自启动
systemctl enable sshd
5.补充 关闭防火墙命令
查看
firewall-cmd --state
关闭
systemctl stop firewalld.service
禁止开机自启
systemctl disable firewalld.service
Ubuntu
进入容器 docker exec -it node-1 /bin/bash
安装各种 net-tools,openssl,openssh
apt update
apt upgrade
apt install openssl net-tools, openssh

启动ssh
service ssh start 
或者
systemctl start sshd

配置文件
apt install vim -y
vim  /etc/ssh/sshd_conf

1.将 Port 22 前面的注释去掉(开启22号端口)
2.将  PermitRootLogin  的 no  改为 yes (这里是设置是否允许root用户登录,可根据自己需求决定是否开启)
3.启用 ssh 密钥登录(可选)
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
4 重启服务
systemctl daemon-reload
systemctl restart sshd.service
5 设置密码
安装
apt install passwd
设置命令
passwd

5 docker中执行systemctl命令

jrei/systemd-ubuntu:18.04这个image在特权模式下可以执行systemctl,命令

创建docker
docker run -d --name redis --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro jrei/systemd-ubuntu:18.04
进入docker
docker exec -it redis /bin/bash

二 常用命令

  1. docker version
    显示docker版本信息
  2. docker info
    显示docker系统信息
  3. docker search
    从Docker Hub查找镜像docker search php 查找php的镜像
  4. docker images
    列出本地镜像
  5. docker ps
    列出所有在运行的容器信息 docker ps -a 显示所有的容器,包括未运行的
  6. docker pull
    从镜像仓库中拉取或者更新指定镜像
docker pull codehi/nginx:v1 //拉取自己仓库的nginx镜像
  1. docker start/stop/restart
    启动/停止/重启容器
docker stop mynginx 停止运行中的容器mynginx
	docker stop `docker ps -a -q` 停止所有容器
  1. docker rm
    删除一个或多个容器
docker rm mynginx 删除容器mynginx,正在运行中的容器需要stop后才能删除,或者使用强制删除。
docker rm -f mynginx 强制删除运行中的容器mynginx
docker rm `docker ps -a -q` 删除所有容器
  1. docker rmi
    删除本地一个或多个镜像
docker rmi codehi/nginx:v1 删除镜像codehi/nginx:v1
docker rmi -f codehi/nginx:v1 强制删除
docker rmi `docker images -q` 删除所有镜像
  1. docker logs
    获取容器的日志
docker logs -f mynginx  //跟踪容器mynginx的日志,实时输出的。
  1. docker history
    查看指定镜像的创建历史
docker history codehi/nginx:v1 // 查看本地镜像codehi/nginx:v1的创建历史
  1. docker login
    登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker login //登录至Docker Hub,下一步会提示输入账号密码
  1. docker logout
    登出Docker Hub
  2. docker push
    将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
docker push codehi/nginx:v1 将本地镜像codehi/nginx:v1镜像推送到docker hub仓库中
  1. docker commit
    从容器创建一个新的镜像
docker commit -a "codehui" -m "test" 3218b3ad4e47 codehi/nginx:v1 3218b3ad4e47 
//保存为新的镜像codehi/nginx:v1,并添加提交人信息(codehui)和说明信息(test)
  1. docker tag
    标记本地镜像,将其归入某一仓库
docker tag nginx:v1 codehi/nginx:v2 //将镜像nginx:v1标记为 codehi/nginx:v2 镜像
  1. docker save
    将指定镜像保存成 tar 归档文件
docker save -o codehi-nginx-v1.tar codehi/nginx:v1 //将镜像codehi/nginx:v1生成codehi-nginx-v1.tar归档文件
  1. docker load
    从归档文件中创建镜像
docker load -i codehi-nginx-v1.tar //从镜像归档文件codehi-nginx-v1.tar创建镜像
  1. docker export
    将文件系统作为一个tar归档文件导出到STDOUT
docker export -o codehi-nginx-v1.tar mynginx //将容器mynginx保存为tar文件。
  1. docker import
    从归档文件中创建镜像
docker import codehi-nginx-v1.tar codehi-nginx-v1 //从镜像归档文件codehi-nginx-v1.tar创建镜像,命名为codehi-nginx-v1
  1. docker kill
    杀掉一个运行中的容器
docker kill -s KILL mynginx 杀掉运行中的容器mynginx

更多命令请阅读官方文档