Ubuntu配置Docker最全讲解
一、Docker简介Docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);Docker客户端(Client):连接Docker主机进行操作;Docker仓库(Register):用来保存打包各种打包好了软件镜像;Docker镜像(images):软件打包好的镜像;放在Docker仓库中。Docker容器(Container):镜像启动后的实例称为一个容器
一、Docker简介
Docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
Docker客户端(Client):连接Docker主机进行操作;
Docker仓库(Register):用来保存打包各种打包好了软件镜像;
Docker镜像(images):软件打包好的镜像;放在Docker仓库中。
Docker容器(Container):镜像启动后的实例称为一个容器,容器是独立运行的一个或一组应用。
使用Docker的步骤:
1、安装Docker仓库
2、去Docker仓库找到这个软件对应的镜像
3、使用Docker运行这个镜像,这个镜像就会生成一个Docker容器
4、对容器的启动停止就是对软件的启动停止
查看服务器内核版本
uname -r
二、安装Docker
安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
直到出现Complete!
三、Docker的启动和停止
启动Docker命令systemctl start docker
查看版本号:docker -v
root@iZwz92jchyefq3joc3wv9eZ:~# docker -v
Docker version 20.10.7, build f0df350
下次开机自启动systemctl enable docker
root@iZwz92jchyefq3joc3wv9eZ:~# systemctl enable docker
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable docker
停止dockersystemctl stop docker
root@iZwz92jchyefq3joc3wv9eZ:~# systemctl stop docker
Warning: Stopping docker.service, but it can still be activated by:
docker.socket
四、Docker的常用操作
检索mysql镜像docker search mysql
root@iZwz92jchyefq3joc3wv9eZ:~# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11104 [OK]
mariadb MariaDB Server is a high performing open sou… 4209 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 824 [OK]
percona Percona Server is a fork of the MySQL relati… 546 [OK]
phpmyadmin phpMyAdmin - A web interface for MySQL and M… 267 [OK]
默认去DockerHub去检索
⚠️OFFICIAL是否是官方、AUTOMATED是否是自动构建。
拉去mysql镜像 docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
Digest: sha256:52b8406e4c32b8cf0557f1b74517e14c5393aff5cf0384eff62d9e81f4985d4b
Status: Image is up to date for mysql:latest
不加版本号默认下的是latest版本
查看本地docker镜像docker images
root@iZwz92jchyefq3joc3wv9eZ:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest 36ef696ea43d 7 days ago 667MB
mysql latest 5c62e459e087 2 weeks ago 556MB
hello-world latest d1165f221234 4 months ago 13.3kB
删除镜像docker rmi 4cdc5dd7eaad
4cdc5dd7eaad为镜像id
root@iZwz92jchyefq3joc3wv9eZ:~# docker rmi 4cdc5dd7eaad
Untagged: nginx:latest
Untagged: nginx@sha256:8df46d7414eda82c2a8c9c50926545293811ae59f977825845dda7d558b4125b
Deleted: sha256:4cdc5dd7eaadff5080649e8d0014f2f8d36d4ddf2eff2fdf577dd13da85c5d2f
Deleted: sha256:63d268dd303e176ba45c810247966ff8d1cb9a5bce4a404584087ec01c63de15
Deleted: sha256:b27eb5bbca70862681631b492735bac31d3c1c558c774aca9c0e36f1b50ba915
Deleted: sha256:435c6dad68b58885ad437e5f35f53e071213134eb9e4932b445eac7b39170700
Deleted: sha256:bdf28aff423adfe7c6cb938eced2f19a32efa9fa3922a3c5ddce584b139dc864
Deleted: sha256:2c78bcd3187437a7a5d9d8dbf555b3574ba7d143c1852860f9df0a46d5df056a
根据镜像启动容器docker run --name mytomcat01 -d tomcat
mysql启动的命令(官网,但是实际启动有误): docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
可以使用docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=root -p5555:3306 -d mysql
启动!!
注意:-d代表后台运行 ;-p代表将主机的端口映射容器内部端口
Z:~# docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=root -p5555:3306 -d mysql
1225f34ed9bd27cdbbfb75cc49d1c5d03b97acc74c84e9bef55bdaa350e44f77
root@iZwz92jchyefq3joc3wv9eZ:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1225f34ed9bd mysql "docker-entrypoint.s…" 9 seconds ago Up 9 seconds 33060/tcp, 0.0.0.0:5555->3306/tcp, :::5555->3306/tcp some-mysql
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@iZwz92jchyefq3joc3wv9eZ:~# docker run --name mytomcat01 -d tomcat
95b405c256de58f2e4acffb8652f12df73813f4c9b68a9992dad220d54961d3e
查看运行中的镜像docker ps
root@iZwz92jchyefq3joc3wv9eZ:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
95b405c256de tomcat "catalina.sh run" 48 seconds ago Up 47 seconds 8080/tcp mytomcat01
停止运行中的容器docker stop 95b405c256de
root@iZwz92jchyefq3joc3wv9eZ:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
95b405c256de tomcat "catalina.sh run" 48 seconds ago Up 47 seconds 8080/tcp mytomcat01
root@iZwz92jchyefq3joc3wv9eZ:~# docker stop 95b405c256de
95b405c256de
root@iZwz92jchyefq3joc3wv9eZ:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
查看所有的容器(运行中和停止的)docker ps -a
root@iZwz92jchyefq3joc3wv9eZ:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
95b405c256de tomcat "catalina.sh run" 3 minutes ago Exited (143) 54 seconds ago mytomcat01
启动容器docker start 95b405c256de
root@iZwz92jchyefq3joc3wv9eZ:~# docker start 95b405c256de
95b405c256de
root@iZwz92jchyefq3joc3wv9eZ:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
95b405c256de tomcat "catalina.sh run" 5 minutes ago Up 9 seconds 8080/tcp mytomcat01
删除容器(必须是停止状态):docker rm 95b405c256de
⚠️:rm
是删除容器的rmi
是删除镜像的
四、Navicat Premium 连接Mysql报错
docker exec -it some-mysql bash
some-mysql为docker中的mysql名
root@iZwz92jchyefq3joc3wv9eZ:~# docker exec -it some-mysql bash
root@1225f34ed9bd:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.25 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
修改密码
ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY 'root';
然后就连接成功了
五、高级操作(下文全部来源官网):
使用自定义 MySQL 配置文件
MySQL 的默认配置可以在 中找到/etc/mysql/my.cnf,其中可能!includedir还有其他目录,例如/etc/mysql/conf.d或/etc/mysql/mysql.conf.d。请检查mysql图像本身中的相关文件和目录以获取更多详细信息。
如果/my/custom/config-file.cnf是你的自定义配置文件的路径和名称,你可以这样启动你的mysql容器(注意这个命令中只使用了自定义配置文件的目录路径):
docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
这将启动一个新容器some-mysql,其中 MySQL 实例使用来自/etc/mysql/my.cnf和的组合启动设置/etc/mysql/conf.d/config-file.cnf,后者的设置优先。
没有cnf文件的配置
许多配置选项可以作为标志传递给mysqld. 这将使您无需cnf文件即可灵活地自定义容器。例如,如果要将所有表的默认编码和排序规则更改为使用 UTF-8 ( utf8mb4),只需运行以下命令:
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
更多推荐
所有评论(0)