Docker 安装及基本使用

一、安装:

1、系统要求: Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。

2、使用yum 安装:

yum update --确保yum是最新的

yum -y install docker-io -- 安装docker

安装完成查看docker版本

docker version

3、启动:

systemctl start docker ##启动 
systemctl enable docker ##设置docker开机启动

二、 Docker 镜像常用命令

1.搜索镜像

[root@192 ~]# docker search centos

报错信息:

Error response from daemon: Get https://index.docker.io/v1/search?q=centos&n=25: net/http: TLS handshake timeout

机器网络配置出了问题,解决方案:

查看服务器DNS网络配置vi /etc/resolv.conf

把里面的内容清除,并改为:

nameserver 8.8.8.8

nameserver 8.8.8.4

重启网络服务 systemctl restart network

2.下载docker镜像

国内从Docker Hub下载镜像速度很慢,我们可以配置阿里云专属加速器来解决

首先访问阿里云docker镜像仓库网站:

https://dev.aliyun.com/search.html

配置镜像加速器

针对Docker客户端版本大于 1.10.0 的用户

修改daemon配置文件/etc/docker/daemon.json来使用加速器 { "registry-mirrors": ["https://o72216kx.mirror.aliyuncs.com"] }

##重新加载daemon: 

systemctl daemon-reload

##重启docker 

systemctl restart docker

docker pull centos ##镜像名称

3、查看宿主机上的镜像:

docker images

4 .删除镜像

docker rmi 镜像ID

如果提示镜像被使用,需要先停止某个ID的容器,那么要先删除容器再删除镜像

可以删除刚才下载的centos镜像,然后重新下载会发现速度快了很多!

5、卸载docker

yum remove docker-ce 
rm -rf /var/lib/docker

三、Docker容器常用命令

1、查看当前运行的容器

docker ps  ##查看当前运行的容器
docker ps -a ##查看所有容器

2、启动、停止、重启容器命令:

docker start 容器ID或name 

docker stop 容器ID或name 

docker restart 容器ID或name

3、删除容器

docker rm 容器ID

四、创建可交互容器

1.创建一个进入到了容器终端,并能执行交互命令的容器

docker run -it --name mycentos centos /bin/bash

-i:interactive具有交互功能

  1. -t:提供伪终端
  2. /bin/bash:进入到bash环境
  3. --name:表示容器的name,后面的centos表示使用的哪个镜像(镜像name)

创建容器的时候报错WARNING: IPv4 forwarding is disabled. Networking will not work.

# docker run -it -p 30001:22 --name=centos-ssh centos /bin/bash

WARNING: IPv4 forwarding is disabled. Networking will not work.

解决办法:

# vim /usr/lib/sysctl.d/00-system.conf1

添加如下代码:

net.ipv4.ip_forward=1

重启network服务

# systemctl restart network

2.退出容器终端:exit

退出容器终端后,容器状态也是退出了,本机host进程也停止运行了,容器的状态会随着command的命令执行而改变,如果需要将容器持续不断的运行,那么将command变为持续不断的运行就可以

如果想正常退出终端但不关闭容器,可以使用Ctrl+P+Q退出容器

3.进入容器终端:

docker exec -it 容器ID /bin/bash

只有在容器启动的时候即up状态才能进入容器终端。

五、数据卷(Data Volume)

在容器中创建数据卷的目的:

  • 持久化数据,只要数据卷有容器在使用,就会一直存在
  • 数据卷可以被多个容器间共享和重用
  • 数据卷在宿主机上能够找到映射,如果容器中的数据卷设为只读,可通过宿主机上的映射文件进行读写

1.直接创建数据卷

[root@192 _data]# docker run --name mycontainer -v /home/data -it docker.io/centos /bin/bash

其中 -v参数即可创建一个数据卷,容器中的位置即是/home/data -it表示进入容器终端,可进入该/home目录查看

因为在宿主机上有该数据卷的映射,但是没有指定挂载目录,所以映射到了一个默认的位置,可以通过以下命令查找,首先退出容器终端

(快捷键 Ctrl+P+Q)回到宿主机,输入以下命令:

[root@192 _data]# docker inspect mycontainer|grep /var/lib/docker/volumes

2.挂载宿主机目录到数据卷 在挂载宿主机目录之前,先临时关闭selinux,否则进入容器终端后会出现拒绝访问

[root@192 home]# setenforce 0

然后根据镜像docker.io/centos创建容器mycontainer2,并将宿主机上的目录/home/data挂载到容器的/home/data数据卷

[root@192 home]# docker run -it --name mycontainer2 -v /home/data:/home/data docker.io/centos /bin/bash

还可以同时挂载多个目录,创建容器mycontainer3,将宿主机上的/home/softs挂载到容器的/home/softs目录、宿主机上的/opt/data挂载到容器的/home/data目录

[root@localhost ~]# docker run --name mycontainer3 -v /home/softs:/home/softs -v /opt/data:/home/data:ro -it docker.io/centos /bin/bash

其中:ro表示只读,即容器中的/home/data目录是只读的

3、数据卷容器(Data volume containers)

如果你有一些持续更新的数据需要在容器之间共享,最好创建数据卷容器。

创建一个命名的数据卷容器 dbdata:

[root@192 /]# docker run -it -v /dbdata/volume1 -v /dbdata/volume2 --name dbdata docker.io/centos /bin/bash

其他容器就可以挂载这个数据卷容器中的数据卷了

[root@192 /]#docker run -it --volumes-from dbdata --name mycontaner4 docker.io/centos /bin/bash

六、Nginx 镜像

1、使用docker命令下载nginx 镜像

docker pull nginx

查看镜像

根据nginx镜像创建一个容器并启动(如果有需要可以创建数据卷)

[root@localhost nginx]#docker run -d -p 10022:22 -p 8001:80 -p 4443:443 --name docker-nginx nginx

参数说明:

  1. -d 后台运行
  2. -p 宿主机port:容器port (端口映射)
  3. --name 容器名称
  4. 直接访问地址:http://192.168.108.128:8001/ 即可出现Nginx的欢迎页面,如下

七 、安装 MySQL8镜像

1、下载镜像

docker pull mysql

2、本地新建挂载配置目录(mysql8版本,一但mysql正式运行,就不能再设置忽略大小写了,强行设置会导致mysql服务启动不了,所以,我们创建容器时必须将mysql配置挂载到容器上。)

mkdir /home/msql01

新建配置文件my.cnf,增加配置(需要配置数据忽略大小写)

[mysqld] lower_case_table_names=1

3、重新创建并运行容器

docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=root -v /home/mysql01:/etc/mysql/conf.d -p 13306:3306 -d mysql

查看容器是否启动成功

docker ps -a

4、进入容器连接mysql

docker exec -it containerid /bin/bash

mysql -uroot -proot

5、查询大小写配置

show variables like '%lower_case%';

6、远程连接授权

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

7、使用navicat 连接 mysql

八、安装redis 镜像

1、拉取最新版本的镜像

[root@localhost ~]# docker pull redis

2、查看镜像

3、创建配置文件挂载目录

mkdir /home/docker/redis/conf

mkdir /home/docker/redis/data

4、新建配置 redis.conf 置于 home/docker/redis/conf目录下

5、创建容器并启动

docker run --name docker_redis -p 16379:6379 -v /home/docker/redis/data:/etc/redis/data -v /home/docker/redis/conf:/etc/redis/conf -d redis redis-server /etc/redis/redis.conf

查看容器:

6、连接测试

宿主机上执行:

[root@localhost ~]# docker exec -it 95ae5e6dcf33 redis-cli

7、使用redis-desktop-manage 连接 redis

发布了7 篇原创文章 · 获赞 0 · 访问量 201

猜你喜欢

转载自blog.csdn.net/m0_37874989/article/details/104229435