00.docker的安装以及基本配置使用
Docker安装¶
软件安装¶
根据官网一步步走下来就可以了
Install Docker Engine on Ubuntu | Docker Docs
这里记录在ubuntu上的安装流程
首先删除所有和docker冲突的包
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
设置docker的APT库
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
安装docker的最新版本
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
检测docker是否安装成功
安装完成后查看安装是否成功
软件卸载¶
卸载docker
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
删除相关的配置文件
添加国内镜像库¶
因为国内访问dockerhub会比较慢,所以我们使用国内的镜像源,这里添加阿里的镜像文件库
进入阿里云容器镜像服务,注册进入后,点开左边的镜像工具->镜像加速器,然后在右边就会出现怎么添加服务的内容了
这里展示ubuntu用户的方案,这个镜像链接好像每个人的都不一样,可以用自己的,可能会快点吧。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://rodeah1w.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
有时候这个也不能用,可以关注国内镜像源
https://xuanyuan.me/blog/archives/1154?from=tencent
docker常用查看命令¶
docker使用建议在root模式下,会方便很多,以下命令全是在root模式下执行
如果不想使用sudo的话,可以运行以下命令将当前用户添加到docker组中:
注销并重新登录,或者运行以下命令使更改生效:
确保用户已经成功添加到 docker 组。可以使用以下命令检查:
查看正在运行的容器
查看已经下载过的镜像
docker网络配置¶
docker一般会有三个网络,docker0,host,null,可以通过以下命令查看
我们一般会自己添加一个网络,然后让自己的有关联的服务连接到这一个网络上,这样就可以实现容器以容器名为地址的端口访问,当然也可以直接使用IP地址访问,但是可能IP地址会变,但是使用网络名的话,就不会改变。
- 在自定义网络中,可以给容器起多个别名,默认的别名是容器名本身
- 在同一个自定义网络中的容器,可以通过别名互相访问
添加一个自己的网络
查看现有网络
我这个系类的笔记,如果没有特别说明,都是基于一个网络
Docker启动容器¶
docker启动容器一般有两种方式,一种是直接命令行docker run 镜像名,还有一种是建立docker-compose.yml文件然后使用docker-compose up -d执行文件中的相关配置
docker run¶
这里以一个mysql的安装为例
docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
mysql
上面的参数含义 --name是容器名 -p是容器和宿主机端口映射 -e是环境变量 还有一些其他的参数,暂时不做细讲
docker-compose使用¶
在建立的保存相应应用数据的文件夹下面建立docker-compose.yml文件
执行命令
如果没有该命令,应该会提示安装
这样安装的版本好像是1.24还是多少的,如果要下载最新的,如下操作
sudo curl -L https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
当然,这样下载是需要能访问github的,如果访问不了,可以想办法下载到这个二进制文件docker-compose-linux-x86_64,然后复制到/usr/local/bin/下,然后将该二进制文件改名为docker-compose,再给他赋予权限
这里也以一个mysql的安装为例,我们先在想要存储mysql数据库的位置新建一个文件
# Use root/example as user/password credentials
version: '3.1'
services:
db:
container_name: mysql
image: mysql
# NOTE: use of "mysql_native_password" is not recommended: https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password
# (this is just an example, not intended to be a production configuration)
command:
--max_connections=1000
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
# --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: lqhlqh
TZ: Asia/Shanghai
volumes:
- ./data:/var/lib/mysql
- ./init:/docker-entrypoint-initdb.d
- ./conf:/etc/mysql/conf.d
networks:
- my_net
ports:
- 3306:3306
networks:
my_net:
name: lqh_net
上面的参数,container_name就是容器名,image是镜像名,command感觉像一些初始化,environment是环境变量,volumes是宿主机存储位置和Docker容器中位置的映射,networks是网络名,ports是端口映射
docker导出和导入¶
查看要导出的ID
然后
这样后,就导出了
下面导入
没有TAG和ID