简介
docker分为CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),社区版就够我们使用了
containerd.io
- daemon to interface with the OS API (in this case, LXC - Linux Containers), essentially decouples Docker from the OS, also provides container services for non-Docker container managers
docker-ce
- Docker daemon, this is the part that does all the management work, requires the other two on Linux
docker-ce-cli
- CLI tools to control the daemon, you can install them on their own if you want to control a remote Docker daemon
安装
archlinux sudo pacman -S docker
ubuntu参考ubuntu安装docker
centos参考centos安装docker
Docker常用命令
systemctl start docker # 启动
systemctl restart docker # 重启
systemctl enable docker # 开机启动
systemctl stop docker # 停止
搜索镜像image
镜像版本查询仓库:https://hub.docker.com/
docker search mysql
docker search tomcat
docker search redis
拉取需要的镜像
docker pull 镜像名字 # 如果不指定版本,docker会拉取用户量最多的
查看拉取所有镜像
docker images
删除镜像
docker rmi 镜像ID
删除镜像之前应该先停止docker容器
systemctl stop docker
强制删除docker容器下所有镜像
rm -rf /var/lib/docker
查看运行的容器
docker ps # 查看正在运行的容器
docker ps -a # 查看所有运行过的容器
进入容器内部
docker exec -it 容器ID /bin/bash
实例
安装tomcat
docker run --name tomcat -p 8080:8080 -d tomcat
--name # 为创建的容器命名
-p # 端口映射 主机(宿主)端口:容器端口
-d # 后台运行,并且返回容器ID
-v #
安装mysql
# 创建容器
# 默认设置数据库密码为root
# 将容器的3306端口映射到物理机的3306
docker run --name mysql_latest -p 3309:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql
# 进入容器
docker exec -ti ContainerID /bin/bash
# 登录mysql
mysql -u root -proot
# mysql 更改密码
mysql -u root -p root
alter user "root"@"%" identified with mysql_native_password by "XXXXXX";
flush privileges;
安装pipe博客
sudo docker pull b3log/pipe
sudo docker run --detach --name pipe --network=host b3log/pipe --mysql="root:xxxxxx@(172.18.0.2:3306)/pipe?charset=utf8mb4&parseTime=True&loc=Local" --runtime_mode=prod --port=80 --server=http://192.168.0.103:80
指定IP创建容器
创建虚拟网络
sudo docker network create --subnet=172.18.0.0/16 dockernet
创建容器的时候指定ip
--net dockernet --ip 172.18.0.2
这样就是当我们重启容器之后ip不会被重新分配!
查看容器IP地址
docker inspect mysql_latest