Docker使用(二)Docker安装和常见典型操作
二、软件安装
1、Docker安装
(1)环境准备
[root@localhost ~]# uname -r
3.10.0-327.el7.x86_64
# cat /etc/os-release
(2)卸载旧版本
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
(3)安装软件包
安装yum-utils软件包(提供yum-config-manager 实用程序)并设置稳定的存储库。
$ sudo yum install -y yum-utils
[阿里云操作]:
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
(4)设置镜像仓库
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo //国外的地址太慢了,建议换成阿里云的地址
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[阿里云操作]:
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Step 3: 更新下yum缓存索引
$ yum makecache fast
(5)安装docker引擎
$ sudo yum -y install docker-ce docker-ce-cli containerd.io
(6)启动docker
$ sudo systemctl start docker
或者 $ sudo service docker start
systemctl enable docker //运行开机启动
如何判断成功:
[root@localhost ~]# docker version
(7)测试hello-world
$ sudo docker run hello-world
(8)查看images
[root@localhost ~]# docker images
(9)卸载docker
$ sudo yum remove docker-ce docker-ce-cli containerd.io
$ sudo rm -rf /var/lib/docker
2、阿里云镜像加速
(1)找到阿里云镜像加速服务
(2)配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://25fgdfnn.mirror.aliyuncs.com”]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
三、常见典型操作
1、redis 安装
1.1 镜像安装
# docker run -p 6379:6379 --name my-redis -v /usr/local/workspace/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/workspace/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
命令说明:
-p 6379:6379:把容器内的6379端口映射到宿主机6379端口
-v /data/redis/redis.conf:/etc/redis/redis.conf:把宿主机配置好的redis.conf放到容器内的这个位置中
-v /data/redis/data:/data:把redis持久化的数据在宿主机内显示,做数据备份
redis-server /etc/redis/redis.conf:这个是关键配置,让redis不是无配置启动,而是按照这个redis.conf的配置启动
–appendonly yes:redis启动后数据持久化
============================================================================
1.2 docker镜像普通安装
docker images 查询到redis镜像
# docker run -it -d --name my-redis01 -p 6379:6379 redis
============================================================================
1.3 数据卷挂载(默认docker0网卡)
(1)在宿主机创建容器卷文件夹
mkdir workspace
cd /usr/local/workspace
创建配置文件所在文件夹:
mkdir /docker/redis/conf
创建Redis持久化文件所在文件夹:
mkdir /docker/redis/data
在conf文件夹下创建配置文件redis.conf
切记:不要配置daemonize yes,否则无法启动容器:启动后立即停止
(2)创建并启动容器
[root@localhost redis]# pwd
/usr/local/workspace/docker/redis
[root@localhost redis]# docker run -d --privileged=true -p 6379:6379 -v $pwd/conf/redis.conf:/etc/redis/redis.conf -v $pwd/data:/data --name myredis01 redis redis-server /etc/redis/redis.conf --appendonly yes
$pwd :代表当前目录
–privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
-v :指定数据卷绑定
redis-server /etc/redis/redis.conf:指定配置文件启动redis-server进程
–appendonly yes:开启数据持久化
这里是在默认docker0网卡上。
============================================================================
1.4 自定义网卡
其他都一样,创建容器时候采用自定义网络
创建并启动容器
[root@localhost redis]# docker run -d --privileged=true -p 7379:6379 -v $pwd/conf/redis.conf:/etc/redis/redis.conf -v $pwd/data:/data --name mynet_redis01 –net mynet redis redis-server /etc/redis/redis.conf --appendonly yes
============================================================================
2、mysql 安装
2.1 基本镜像安装
# docker run -p 13306:3306 --name my-mysql -v /usr/local/workspace/mysql/conf:/etc/mysql -v /usr/local/workspace/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d
mysql:5.7
命令说明:
**-p ** 13306:3306 将容器的 3306 端口映射到主机的 3306 端口
–name my-mysql 启动后容器名为 my-mysql
-v $PWD/conf:/etc/mysql 将主机当前目录下的 conf/ 挂载到容器 /etc/mysql (conf目录为mysql的配置文件,不挂载也没问题)
-v $PWD/logs:/logs 将主机当前目录下的 logs 目录挂载到容器的 /logs (logs目录为mysql的日志目录,不挂载也没影响)
-v $PWD/data:/var/lib/mysql 将主机当前目录下的data目录挂载到容器的 /var/lib/mysql (data目录为mysql配置的数据文件存放路径,这个还是建议挂载,是存储数据的,容器down掉,还能再次挂载数据。)
-e MYSQL_ROOT_PASSWORD=123456 初始化 root 用户的密码
============================================================================
2.2 持久化安装
思考:mysql 的数据持久化问题
# 获取镜像
[root@localhost ~]# docker pull mysql:5.7
# 运行容器,需要做挂载!
# 安装启动mysql,需要配置密码,这是需要注意的!
#官方测试:
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
#启动容器
-d 后台运行
-p 端口映射
-v 卷挂载
–name 容器名字
[root@localhost ~]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
3、tomcat镜像安装
#docker run -it -d --name tomcat03 -p 3377:8080 tomcat
由于:官方镜像阉割了
解决:
进入容器
# docker exec -it 62131a77690a /bin/bash
# cp -r webapps.dist/* webapps
解决了
4、portainer
# docker run -d -p 9000:9000 \
–restart=always -v /var/run/docker/sock:/var/run/docker.sock --privileged=true portainer/portainer
账户:admin 密码:改成自己的密码