容器
1 | 查看正在运行 |
查看container现在工作网络模式
列出docker的所有网络模式
1
docker network ls
针对bridge和host分别查找有哪些container在其中
1
2docker network inspect bridge
docker network inspect host直接查看container的信息,找到network段查看。或者用grep筛选出network。
1
2docker inspect 容器名/容器ID
docker inspect 容器名/容器ID | grep -i “network” # 其中grep的“-i”表示不区分大小写。
Exit Codes
Common exit codes associated with docker containers are:
Exit Code 0: Absence of an attached foreground process
Exit Code 1: Indicates failure due to application error
Exit Code 137: Indicates failure as container received SIGKILL (Manual intervention or ‘oom-killer’ [OUT-OF-MEMORY])
Exit Code 139: Indicates failure as container received SIGSEGV
Exit Code 143: Indicates failure as container received SIGTERM
Exit Code 126: Permission problem or command is not executable
Exit Code 127: Possible typos in shell script with unrecognizable characters
mysql
密码123456
创建容器
1
2
3
4
5docker run --name mysql-server -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
注意:
-d:让容器在后台运行
-P(大写):是容器内部端口随机映射到主机的高端口
-p(小写):是容器内部端口绑定到指定的主机端口进入容器
1
2
3docker exec -it mysql-server /bin/bash
或
docker exec -it mysql-server /bin/sh访问
docker exec -it mysql-server mysql -uroot -p
修改root 可以通过任何客户端连接
1
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
从外部访问docker mysql-server
1
mysql -h127.0.0.1 -P3306 -uroot -p
导入sql文件
1
2
3
4
5
6
7
8先将文件导入到容器
#docker cp **.sql 容器名:/root/
进入容器
#docker exec -ti 容器名或ID sh
登录数据库
# mysql -uroot -p
将文件导入数据库
source 数据库名 < /root/***.sql导出数据库
1
docker exec -it mysql-server(容器名) mysqldump -uroot -p123456 数据库名称 > /opt/sql_bak/test_db.sql(导出表格路径)
portainer
密码重置
下载帮助镜像portainer/helper-reset-password
1
docker pull portainer/helper-reset-password
停止运行的portainer
1
docker stop "id-portainer-container"
运行重置命令
1
docker run --rm -v portainer_data:/data portainer/helper-reset-password
结果
1
22020/06/04 00:13:58 Password successfully updated for user: admin
2020/06/04 00:13:58 Use the following password to login: &_4#\3^5V8vLTd)E"NWiJBs26G*9HPl1重新运行portainer,密码 为👆重置的 &_4#\3^5V8vLTd)E”NWiJBs26G*9HPl1
1
docker start "id-portainer-container"
现在密码为 admin/admin
重新安装
1
2
3
4
5sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
cr.portainer.io/portainer/portainer-ce:2.9.3
nacos
- run
1
docker run -d --name nacos -p 8848:8848 -e PREFER_HOST_MODE=hostname -e MODE=standalone nacos/nacos-server
- Linux memory is insufficient
1
docker run -e JVM_XMS=256m -e JVM_XMX=256m --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server
- Linux memory is insufficient
redis
使用docker-compose up redis启动容器时,如果配置自定义配置文件 redis.conf,需要设置
1 | bind 0.0.0.0 |
docker-compose.yml文件内容
1 | version: "3.7" services: |
使用 docker-compose –verbose up redis启动,可查看启动详情
修改已有容器的端口映射
停止容器
停止docker服务(systemctl stop docker)
修改这个容器的hostconfig.json文件中的端口(原帖有人提到,如果config.v2.json里面也记录了端口,也要修改)
1
2
3
4
5
6
7
8cd /var/lib/docker/3b6ef264a040* #这里是CONTAINER ID
vi hostconfig.json
如果之前没有端口映射, 应该有这样的一段:
"PortBindings":{}
增加一个映射, 这样写:
"PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3307"}]}
前一个数字是容器端口, 后一个是宿主机端口.
而修改现有端口映射更简单, 把端口号改掉就行.启动docker服务(systemctl start docker)
启动容器
配置容器的镜像源(安装vim)
1 | mv /etc/apt/sources.list /etc/apt/sources.list.bak |