常见命令
登录私人仓库
docker login
退出登录
docker logout
查看镜像
docker images
查看已创建的容器
docker ps -a
拉取镜像
docker pull imagename:tag
创建容器
docker run -it --gpus all --shm-size 8g --name xxx -p 6666:22 imagename /bin/bash
# --gpus all 使用宿主的全部GPU,也可以仅分配单个,不分配则无法使用GPU
# --name 为容器命名,不自主命名则会自动命名
# -p 端口映射,表示将docker的22端口映射宿主机的6666端口
# --shm-size 设置容器的shm大小
退出容器
ctrl+d
重新进入容器
首先查看容器状态,若是运行状态:
docker exec -it containername /bin/bash
否则先执行:
docker start containername
删除容器
docker container rm containerid
停止容器
docker stop containerid
设置容器为开机自启动
docker update --restart=always <container id>
容器打包为镜像
docker commit -a dockerhubname containerid dockerhubname/imagename:tag
push镜像到私人仓库
docker push dockerhubname/imagename:tag
# 若执行该命令出现如下错误:
# denied: requested access to the resource is denied
# 则先退出登录docker,再重新登录docker
镜像打包
docker save -o imagename.tar imagename:tag
镜像压缩
sudo tar -zcvf imagename.tar.gz imagename.tar
解压(得到.tar文件)
tar -zxvf imagename.tar.gz
载入(得到镜像)
sudo docker load -i imagename.tar
使用ssh连接docker
apt-get update
apt-get install openssh-server
passwd # 该命令用于设置密码
apt-get install vim-gtk
vim /etc/ssh/sshd_config
# 取消以下行的注释
PubkeyAuthentication yes
PermitRootLogin yes # 注意这里改为了yes
port=22
# 重启ssh服务
service ssh restart
开机自启动ssh
# 进入容器,在 /root 目录下新建一个 start_ssh.sh文件,并给予该文件可执行权限。
touch /root/start_ssh.sh
vim /root/start_ssh.sh
chmod +x /root/start_ssh.sh
start_ssh.sh 脚本的内容,如下:
#!/bin/bash
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
echo "[$LOGTIME] startup run..." >>/root/start_ssh.log
service ssh start >>/root/start_ssh.log
#service mysql start >>/root/star_mysql.log //其他服务也可这么实现
将start_ssh.sh脚本添加到启动文件中
# startup run
if [ -f /root/start_ssh.sh ]; then
./root/start_ssh.sh
fi
在 .bashrc 文件末尾加入如下内容:
# startup run
if [ -f /root/start_ssh.sh ]; then
/root/start_ssh.sh
fi