Docker 安装与使用基础
常用命令
1 | docker ps [-a] #查看运行容器状态,-a 查看所有容器 |
docker安装
1 | sudo yum install -y yum-utils device-mapper-persistent-data lvm2 |
daemon设置
修改/etc/docker/daemon.json文件
1 | vim /etc/docker/daemon.json |
docker加速阿里云加速地址
1 | #等效于添加daemon.json文件 |
远程访问docker
方法1
在daemo.json添加"hosts":["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"]
hosts 分tcp,uninx,fd三种模式,第一中时tcp指定网络连接方式,0.0.0.0:2375是指所有网络都可以连接,不安全,因此一般会加上stl证书形式,这里我用的局域网,所有没有加证书,指定局域网设置主机所属ip例如网卡2的ip为10.14.0.2,因此设置为10.14.0.2,只有10.14.0这个局域网可以访问,第二种uninx时指本地可以自由连接docker,第三种,理解不是很清楚,不发表见解
方法2(方法1能采用尽量用1)
直接修改服务的启动文件,添加-H参数指定
1 | #解决portainner添加节点失败centos7.2 修改 /lib/systemd/system/docker.service |
参考:docker 远程连接
docker-compose安装
法一(当前采用)
1 | #pip安装方式 |
法二
安装docker-compose(以容器类型安装)
法三
1 | sudo -i |
基本常用命令
1 | docker-compose up -d |
docker-machine
linux
1 | curl -L https://github.com/docker/machine/releases/download/v0.12.2/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine && |
windos git bash
1 | if [[ ! -d "$HOME/bin" ]]; then mkdir -p "$HOME/bin"; fi && \ |
问题以及解决方法
docker info
出现如下警告奇葩现象,在mongo里面添加了用户之后,springboot连接数据库就连接不是,但是外面能连接上,然后
docker info
会出现下面的错误,然后执行下面 的解决方案就可以连接上了可能(阿里云概率)会导致一个stack服务无法通过宿主机内网ip访问第二个stack服务
1
2WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled解决:
方式一
1
2
3
4
5
6
7
8
9
10
11# 方式一
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables
# 方式二
vi /etc/sysctl.conf
# 添加以下内容
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
#最后执行
sysctl -p问题:构建镜像不能用
-
减号命名镜像的名字,使用docker-statck 部署找不到镜像问题: 执行
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1
2
3
4
5[root@lfadmin ~]# sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
已加载插件:fastestmirror, langpacks
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
Could not fetch/save url https://download.docker.com/linux/centos/docker-ce.repo to file /etc/yum.repos.d/docker-ce.repo: [Errno 12] Timeout on https://download.docker.com/linux/centos/docker-ce.repo: (28, 'Resolving timed out after 30541 milliseconds')解决:
vim /etc/yum.repos.d/docker-ce.repo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/gpg
[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/gpg
[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/source/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/gpg
[docker-ce-edge]
name=Docker CE Edge - $basearch
baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/$basearch/edge
enabled=0
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/gpg
[docker-ce-edge-debuginfo]
name=Docker CE Edge - Debuginfo $basearch
baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/debug-$basearch/edge
enabled=0
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/gpg
[docker-ce-edge-source]
name=Docker CE Edge - Sources
baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/source/edge
enabled=0
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/gpg
[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/gpg
[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo $basearch
baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/debug-$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/gpg
[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/source/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/gpg
[docker-ce-nightly]
name=Docker CE Nightly - $basearch
baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/gpg
[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo $basearch
baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/debug-$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/gpg
[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/gpg问题:
sudo yum install docker-ce
提示如下1
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
解决:
1
2yum provides '*/applydeltarpm'
yum install deltarpm问题
docker structure needs cleaning
解决:
docker system prune -a
问题设置daemo.json中hosts远程tcp连接时,不能启动
解决:
vim /lib/systemd/system/docker.service
1
2
3ExecStart=/usr/bin/dockerd -H fd://
#修改为
ExecStart=/usr/bin/dockerd然后重载配置
systemctl daemon-reload
重启docker服务
systemctl restart docker.service
原因:冲突和hosts