Docker安装、运维教程

一、Docker安装

1 添加docker到yum源

1.1 安装

[root@hadoop ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-bash: yum-config-manager: 未找到命令

1.2.尝试安装yum-config-manager

[root@hadoop apps]# yum install -y yum-config-manager
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * epel: mirrors.ustc.edu.cn
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.ustc.edu.cn
没有可用软件包 yum-config-manager。
错误:无须任何处理

1.3.经查询,系统没有这个yum-config-manager命令,在yum-utils包里。

[root@hadoop apps]# yum -y install yum-utils
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
已安装:
  yum-utils.noarch 0:1.1.31-54.el7_8
完毕!

1.4.再次安装

[root@hadoop apps]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
已加载插件:fastestmirror
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo

2 安装docker

2.1. 安装docker

[root@hadoop yum.repos.d]# yum -y install docker-ce

2.2. 配置

[root@hadoop yum.repos.d]# mkdir -p /etc/docker
[root@hadoop yum.repos.d]# mkdir -p /data/apps/docker

2.3. 将daemon.json拷贝到/data/apps/docker

2.4. 启动docker

[root@hadoop yum.repos.d]# systemctl start docker


[root@hadoop docker]# ps -ef | grep docker
root       5791      1  0 09:04 ?        00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root       6014   1896  0 09:05 pts/0    00:00:00 grep --color=auto docker
[root@hadoop docker]#

docker ps 查看运行中容器(方便停止)

docker stop id

docker ps -a查看所有容易(方便重启和删除)

docker start id

docker rm id

3 安装可视化管理页面

3.1查找poratiner版本

[root@hadoop_zxy ~]# docker search portainer
NAME                                DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
6053537/portainer-ce                portainer-ce中文汉化版                               21
lihaixin/portainer                  docker ui                                       15                   [OK]
6053537/portainer                   portainer中文版,完整汉化,汉化程度95%以上                     6
greenled/portainer-stack-utils      Bash scripts to deploy/undeploy stacks in a …   6                    [OK]
portainerci/portainer               Portainer images automatically created via P…   5
cqkz/portainer-zh                   portainer-ce:2.1.1-alpine,汉化文件来自恩山…             3
hassioaddons/portainer                                                              2
softonic/portainer-endpoint         Allows auto register all the swarm nodes in1                    [OK]
thibaudlabat/portainer_32           Portainer built for 32bit Linux [ OUTDATED ]1
hassioaddons/portainer-armv7                                                        1
xanderstrike/portainer-issue        for illustrating a portainer issue              0
antsoftxyz/portainer-api            A portainer api wrapper which can help you C…   0
portainerci/agent                   Portainer agent images automatically created…   0
portainerci/portainer-ee            Portainer EE CI repository                      0
helloysd/portainer                                                                  0
mitigram/portainer-ce               Easily Configurable Portainer (CE Edition)      0
11384eb/portainer                                                                   0
nenadilic84/portainer                                                               0
iconviet/portainer                                                                  0
hassioaddons/portainer-amd64                                                        0
agiper/portainer                                                                    0
johnvmt/portainer-ecr-credentials   Periodically updates the credentials Portain…   0                    [OK]
webdevsvc/portainer                 portainer                                       0                    [OK]
profidata/portainer                 Fork of portioner/portainer                     0
geosite/portainer                   A Docker UI, This is a fork of portainer/por…   0
[

3.2 安装

[root@hadoop_zxy ~]# docker pull 6053537/portainer-ce
Using default tag: latest
latest: Pulling from 6053537/portainer-ce
0ea73420e2bb: Pull complete
c367f59be2e1: Pull complete
a6ce72cb0ef8: Pull complete
Digest: sha256:27608553016612ae5373044376fa3274de3d3c9144e17a16211cb15e3faf2f5a
Status: Downloaded newer image for 6053537/portainer-ce:latest
docker.io/6053537/portainer-ce:latest

3.3运行


[root@hadoop_zxy ~]# docker run -d -p 1000:1000 \
>  --restart=always \
> -v /var/run/docker.sock:/var/run/docker.sock \
> --name prtainer-test \
> docker.io/portainer/portainer
Unable to find image 'portainer/portainer:latest' locally
latest: Pulling from portainer/portainer
94cfa856b2b1: Pull complete
49d59ee0881a: Pull complete
a2300fd28637: Pull complete
Digest: sha256:fb45b43738646048a0a0cc74fcee2865b69efde857e710126084ee5de9be0f3f
Status: Downloaded newer image for portainer/portainer:latest
5954df65ea1dbe8ef45d1fe742e7bc7a4b7fdad1da1a8cbc01e4049963277a6d

3.4查看

ip+port网页查看

二、Error response from daemon: driver failed… Error: failed to start containers…

1 docker启动异常

[root@zxy_slave1 ~]# docker start 26778a7f73a3
Error response from daemon: driver failed programming external connectivity on endpoint oracle11g (6992d55d24b8fc6236595a0f3be92a3ee50c12646ed9394ede227560e0dbf393): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 1521 -j DNAT --to-destination 172.17.0.3:1521 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1))
Error: failed to start containers: 26778a7f73a3

2 重启docker

[root@zxy_slave1 ~]# systemctl restart docker

3 查看当前docker容器

[root@zxy_slave1 ~]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
26778a7f73a3 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g “/bin/sh -c '/home/o…” 9 months ago Exited (137) 3 hours ago oracle11g
07e54091826d portainer/portainer “/portainer” 9 months ago Up 5 seconds 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp prtainer-test

4 再次启动docker容器

[root@zxy_slave1 ~]# docker start 26778a7f73a3

26778a7f73a3

5 启动成功

[root@zxy_slave1 ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
26778a7f73a3 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g “/bin/sh -c '/home/o…” 9 months ago Up 3 seconds 0.0.0.0:1521->1521/tcp, :::1521->1521/tcp oracle11g
07e54091826d portainer/portainer

三、Docker容器修改配置文件后,重启失败,如何修改配置并启动容器?

docker部署的MySQL容器,修改了my.cnf配置文件,重启的时候导致无法启动

通过查日志发现,配置文件中的binlog-db-db=hw写错了,应该是binlog-do-db=hw

这时候需要修改配置文件,才能启动,但是呢?容器又启动不了

这种情况可以通过两种方式处理

[root@zxy_master mysql03]# docker logs e1aa5d676710
2023-03-03 08:27:23+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.40-1.el7 started.
2023-03-03 08:27:23+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
        command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.uebX7jnPYr
        2023-03-03T08:27:23.657000Z 0 [ERROR] unknown variable 'binlog-db-db=hw'
2023-03-03T08:27:23.660333Z 0 [ERROR] Aborting
2023-03-03 08:27:52+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.40-1.el7 started.
2023-03-03 08:27:52+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
        command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.HmpBPq7emF
        2023-03-03T08:27:52.311118Z 0 [ERROR] unknown variable 'binlog-db-db=hw'
2023-03-03T08:27:52.314845Z 0 [ERROR] Aborting

方式一:查找跟docker容器映射的本地文件

docker inspect [容器ID]

查看容器详情时,主要关注Mounts处,可以查看到跟容器映射的本地文件,修改后即可成功启动。

我采用的是第二种方法,所以对方式一不做太多说明,可以自行尝试。

"Mounts": [
            {
                "Type": "bind",
                "Source": "/zxy/apps/docker_mysql/mysql03/log",
                "Destination": "/var/log/mysql",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/zxy/apps/docker_mysql/mysql03/data",
                "Destination": "/var/lib/mysql",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/zxy/apps/docker_mysql/mysql03/conf",
                "Destination": "/etc/mysql/conf.d",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

方式二:拷贝容器文件到本地,修改后再上传

# 1.复制容器文件到本地
[root@zxy_master data]# docker cp e1aa5d676710:/etc/my.cnf ./
# 2.修改错误项
[root@zxy_master data]# vim my.cnf
# 3.复制修改后文件到容器
[root@zxy_master data]# docker cp ./my.cnf e1aa5d676710:/etc/my.cnf
# 4.重启成功
[root@zxy_master data]# docker start e1aa5d676710
e1aa5d676710
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐